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
Fixus
post
Post #2





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

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


@Nattfarinn - z tego co mówisz to zgodnie z MVC obiekt jako struktura/typ danych powinien być podzielony na model i co ?
czym jest ta druga część:)
Go to the top of the page
+Quote Post
Nattfarinn
post
Post #3





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

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


Cytat(Fixus @ 2.11.2009, 13:30:47 ) *
@Nattfarinn - z tego co mówisz to zgodnie z MVC obiekt jako struktura/typ danych powinien być podzielony na model i co ?
czym jest ta druga część:)

Nie chcę żeby to zabrzmiało jako coś oczywistego, ale obiekt powinien odpowiadać dokładnie za to, do czego go przeznaczyliśmy. Jeśli posiadasz klase Human, charakteryzującą potencjalnego człowieka - to ta klasa powinna odpowiadać tylko i wyłącznie za to. I z tego powodu metoda getAllHumans() nie powinna być częścią klasy Human. To nie tylko zasady MVC, ale generalnie zasady OOP które nieświadomie się łamie dla własnej wygody. Nie ma w tym łamaniu nic złego właściwie, bo to leży tylko w kwestii piszącego, czy chce się trzymać wzorców czy nie (IMG:style_emoticons/default/smile.gif)

Mówiąc jaśniej: obiekt jako struktura/typ danych nie powinien być dzielony wcale, ale nie powinny być mu również przypisywane metody które go nie dotyczą. W podanym przez Ciebie przypadku, wygląda na to, że obiekt Human mógłby z powodzeniem być zwracany przez fabrykę (załóżmy dla przykładu: klasę Population) pełniącą funkcję modelu (lub z modelu korzystjącą). Niektóre rzeczy w programowaniu można (i bardzo to pomaga) tłumaczyć na rzeczywistych przypadkach: Człowiek [class Human] nie zna wszystkich ludzi na ziemi i to nie jego powinno się o to pytać [::getAllHumans()]. (IMG:style_emoticons/default/smile.gif)

Ten post edytował Nattfarinn 2.11.2009, 13:55:06
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: 5.10.2025 - 13:55