Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 7 Dołączył: 16.07.2007 Skąd: Gorzów Wielkopolski Ostrzeżenie: (0%)
|
Witam, załóżmy, że piszę sobie framework w MVC, wymyśliłem sobie, że zrobię moduł newsów w oparciu o ten wzorzec projektowy, np:
Cytat 1. Kontroler rozszerza Widok, tworzy obiekt modelu, oraz korzystając z konstruktora rodzica przekazuje mu instancję tegoż modelu; 2. Kontroler wybiera jedną z dwóch metod: ShowSingleNews lub ShowNewsList, obie są metodami widoku - pobierają z modelu odpowiednio wybrane przez siebie dane, metodą widoku przekształcają timestampy na ludzkie daty, umieszczają element tablicy danych pobranych z MySQL do kodu html, wybierając jedną z trzech metod widoku: showPinned, showExtended, showOnList. 3. Wybrana przez kontroler metoda zwraca kod html jako string, który jest wyświetlany jako zawartość całej strony przez metodę widoku Display ( $this->ShowSingleNews() ) lub Display ( $this->ShowNewsList() ) Teraz przedstawienie problematyki: ogólnie filozofia programowania obiektowego opiera się na tym, aby obiekty traktować jako przedmioty, a atrybuty i metody jako ich własności i czynności, które mogą wykonać. Zgodnie z tym powinienem ponadto utworzyć sobie klasę NewsItem (i umieścić ją gdzieś osobno, bo nie wiem do czego miałbym ją przydzielić w MVC), miałaby ona atrybuty zgodne z polami w bazie danych a metody takie jak Show (czyli kod html - widok?), oraz gettery i settery. Ewentualnie można by pominąć to Show a zastosować właśnie same settery i gettery. Ale nowa klasa, nowy obiekt tylko po to, aby posiadał same settery i gettery jedynie po to, by w klasie News móc najpierw utworzyć pętlą tablicę obiektów, a następnie drugą pętlą wyświetlić zawartość obiektów? Poza ładną tablicą i faktycznym, abstrakcyjnym przedstawieniem struktury Newsów, tracimy na wydajności no i trochę w MVC sobie bałaganimy. Kończę swój wywód i czekam na Wasze odpowiedzi (IMG:style_emoticons/default/smile.gif) Ten post edytował Luneth 9.08.2010, 00:44:50 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk |
aby obiekty traktować jako przedmioty, a atrybuty i metody jako ich własności i czynności, które mogą wykonać. To, że w definicjach jest napisane, że obiekty służa do lepszego opisywania rzeczywistości (a nie wszystko jest przedmiotem) wcale nie znaczy, że musisz ładować obiekty tam gdzie się da. To, że samochód osobowy z definicji służy głównie do przewożenia osób to nie znaczy, że nie przewieziesz z tyłu 100kg kabaczek. Nie ma sensu definiować obiektu dla każdego typu danych bo faktycznie wydajność spada a prawie nic dzięki temu nie zyskujemy więc nadal swobodnie można posługiwać się tablicami. Kontroler przekazuje je do widoku a widok robi z tym co chce. |
|
|
|
Luneth Styl pisania kodu obiektowego korzystając z MVC 8.08.2010, 23:29:36
Zyx ^^^ Kontroler nie przekazuje danych z modelu do wi... 9.08.2010, 06:52:45
Luneth wookieweb: dokładnie tak samo myślę, chociaż kusi ... 9.08.2010, 12:22:28
Zyx Jeśli mówimy o MVC, to tak. Model możemy opisać na... 9.08.2010, 19:28:08
erix CytatOdnośnie drugiej części -> powtarzam: to, ... 9.08.2010, 19:40:42
Luneth Zyx, utwierdziłeś mnie w przekonaniu że to faktycz... 9.08.2010, 19:54:39
Zyx erix -> Doctrine 2 + APC = hardkorowa wydajność... 10.08.2010, 12:19:44
Luneth Zyx, czy mógłbym liczyć na dokładniejsze przedstaw... 10.08.2010, 14:37:36
smentek Cytat(Luneth @ 9.08.2010, 00:29:36 ) ... 8.09.2010, 21:25:04
Crozin @smentek: Może to już czepialstwo, ale... chyba po... 8.09.2010, 21:43:08
smentek Ha! @crozin Może w dużej części tak ale nie do... 8.09.2010, 23:46:19
dariuszp CytatTeraz przedstawienie problematyki: ogólnie fi... 9.09.2010, 22:47:19
Luneth Wow... nie spodziewałem się wznowienia tematu po t... 12.09.2010, 10:13:06
dariuszp Moja wina. Niewłaściwe słowa użyłem. Ale wiesz o c... 12.09.2010, 12:18:25 ![]() ![]() |
|
Aktualny czas: 10.06.2026 - 17:54 |