Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie obiektów w zgodzie z mvc
Fixus
post
Post #1





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


Witam mam mały czysto teoretyczny problem.

Chodzi o wzorzec MVC.

Załóżmy, że mamy OBIEKT typu Human
Każdy human ma właściwości jak $name, $surname i $age

i załóżmy, że OBIEKT typu human ma metodę służącą do pobrania wszystkich zapisanych ludzi zbazy danych

getAllHumans()

Teraz czy jeżeli bezpośrodnie w tym obiekcie odwołam się do bazy będzie to zgodne z tym wzorcem projektowym? Czy trzeba odwołać się do modelu który połączy się z bazą i to pobierze ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Nattfarinn
post
Post #2





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

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


Cytat(Fixus @ 2.11.2009, 11:03:06 ) *
Witam mam mały czysto teoretyczny problem.

Chodzi o wzorzec MVC.

Załóżmy, że mamy OBIEKT typu Human
Każdy human ma właściwości jak $name, $surname i $age

i załóżmy, że OBIEKT typu human ma metodę służącą do pobrania wszystkich zapisanych ludzi zbazy danych

getAllHumans()

Teraz czy jeżeli bezpośrodnie w tym obiekcie odwołam się do bazy będzie to zgodne z tym wzorcem projektowym? Czy trzeba odwołać się do modelu który połączy się z bazą i to pobierze ?

Wszystko zależy od tego kto na ile swobody sobie pozwala, ale wg ścisłego trzymania się zasad MVC będzie to działanie niezgodne z założeniami wzorca. Metoda getAllHumans() samym swoim działaniem jest typowym getterem zarezerwowanym raczej dla modelu. Można też zapytać, dlaczego obiekt klasy Human ma posiadać metodę getAllHumans()? Czasem (zawsze?) lepiej jest odseparować od siebie części kodu i wydzielić z nich osobne klasy (w tym przypadku agregować obiekt modelu). Może wydawać się to pozornie mniej wygodne pod względem pisania, ale takie działanie prowadzi do zachowania przejrzystości kodu i rzeczywistego odseparowania M od V od C (IMG:style_emoticons/default/winksmiley.jpg) . No i unika się nieświadomego stosowania antywzorca (God Object).
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 04:07