![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Mam dwa modele ( A i B ) przy czym model A musi skorzystać z danych modelu B żeby dokonać pewnych obliczeń. W której klasie Peer ( modelu A czy B ) powinienem ją umieścić.
Zauważyłem że w różnych modelach różnie to rozwiązuję co nie jest uwarunkowane żadnymi konkretnymi powodami. Stąd moje pytanie. Chcę wyrobić sobie do rozwiązywania takich problemów pewien schemat postępowania. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 12 Dołączył: 3.03.2008 Skąd: łódzkie Ostrzeżenie: (0%) ![]() ![]() |
Problematyka po części związana z moim postem tutaj: model w modelu
Ja u siebie wybrałem opcję 2. Idąc tym tropem w Twoim przypadku wszystko potrzebne do pracy Modelowi A zaimplementował bym w metodach tego modelu tudzież jego klasy Peer. |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
(...) wszystko potrzebne do pracy Modelowi A zaimplementował bym w metodach tego modelu (...) No i błąd. Źle izolujesz operacje. Po to tworzy się modele, żeby to one dokonywały operacji na swoich encjach.Jeżeli masz taka sytuacje ze w modelu A potrzebujesz danych zwracanych jako wynik pewnej operacji na danych modelu B to obliczenia powinien wykonać model B. Co się stanie jeśli tych samych obliczeń będziesz potrzebował gdzieś indziej, poza modelami? Lub w innej metodzie modelu A? Będziesz pisał prywatna metodę w modelu A do operacji na modelu B? Nie będzie to problemem jeśli wystawisz operacje na zewnątrz z modelu B. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 12 Dołączył: 3.03.2008 Skąd: łódzkie Ostrzeżenie: (0%) ![]() ![]() |
Nie no, zgadza się. Za bardzo skrótowo opisałem chyba.
W metodzie klasy Peer modelu A, która to coś robi i potrzebuje do tego danych z modelu B musisz odwołać się do jakiejś metody klasy Peer modelu B, która zwróci potrzebne dane.
Tak to mniej więcej widzę. Z tym, że też nie jestem pewien czy najlepsze takie rozwiązanie, bo z poprawnym projektowaniem obiektowym dopiero raczkuję :/ |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Czyli jeśli przykładowo konwertowałbym Jumps do HighJumps / Jumps_High to metodę za to odpowiadającą powinienem umieścić w Jumps_Peer ?
|
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
A mozesz podac REALNY przyklad/problem?
Bo generalnie jak oblcizenia robisz tylko na danych z B to B powinno je robic i zwrocic wynik. Jak potrzebujesz tylko jedna dane z B to pobierasz ja sobie do A itp. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Przykład który podałem wyżej jest zdecydowanie wystarczająco realny. Jakbym miał opisywać całą złożoność modelu danych to nie wiem czy pół kartki A4 by starczyło. Mam bardzo dużo liczb opakowanych w obiekty które tworzą kolekcje i muszę teraz z nich wyliczyć średnią arytmetyczną oraz ważoną potem porównać, podać wyniki procentowo i bla bla bla. Jako że muszę wykonać na nich jeszcze inne obliczenia cały ciąg można nazwać konwersją bo zamieniam jeden model na drugi i przedstawić mniej więcej tak <Klasa_Dużo_Dużo_Liczb> -> <Klasa_Dużo_Dużo_Średnich>.
I teraz pytanie w której klasie pośredniczącej mam tą konwersję wykonywać. Ten post edytował orglee 29.03.2009, 18:24:55 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
W osobnym typie zwanym konwerterem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:02 |