![]() |
![]() |
![]()
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 ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 136 Pomógł: 22 Dołączył: 19.09.2007 Skąd: Sosnowiec 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 ? 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). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 04:07 |