Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Model/Peer] Czym się kierować przy decyzji która metoda..., ...operująca na modelu powinna należeć do którego Model_Peer
starach
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
jarek_bolo
post
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.
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(jarek_bolo @ 29.03.2009, 13:33:42 ) *
(...) 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.
Go to the top of the page
+Quote Post
jarek_bolo
post
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.
  1. <?php
  2. //metoda klasy Peer modelu A
  3.  
  4. static function CosZrob() {
  5.  $dane_Modelu_B = PeerModel_B::daneDlaModeluA();
  6. }
  7. ?>


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ę :/
Go to the top of the page
+Quote Post
starach
post
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 ?
Go to the top of the page
+Quote Post
dr_bonzo
post
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.
Go to the top of the page
+Quote Post
starach
post
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
Go to the top of the page
+Quote Post
Cysiaczek
post
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)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 09:02