Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%)
|
Witam,
jestem po lekturze naprawdę wielu tematów na tym forum, w okręg moich zainteresowań weszła także książka "PHP5 Obiekty, wzorce, narzędzia". Mimo to mam problem co do ułożenia odpowiedniej klasy. Moje problemy: 1. Czy w klasie np. do obsługi newsów powinna znajdować się metoda do wyświetlania konkretnego newsa/newsów jeżeli nie stosuje ścisłego MVC (chce napisać stronę zintegrowaną z innym skryptem od którego będę używał kilka klas i funkcji, m.in. do wyświetlania w przeglądarce html)? Jeżeli nie to powinienem zrobić dla niej osobną funkcję (bez klasy)? 2. Idąc dalej przykładem klasy do obsługi newsów chciałbym zapytać czy lepiej definiować ID newsa już w konstruktorze czy ustalać go manualnie przez metodę np. setId()? 3. Czy opłaca się stworzyć osobną metodę do dodawania elementów do tablicy z danymi newsa (np. addParam($key, $value)(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) , czy wyjdzie na to samo (w sensie obiektowym) przekazując pełną tablicę prosto do metody np. update()? Poniżej zarys klasy:
Jest tu sens OOP? Co zmienić aby było lepiej? Pozdrawiam i z góry serdecznie dziękuje za wyjaśnienia! |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. |
Globalsów się nie używa... bo nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Singletona się używa ostrożnie - w uzasadnionych przypadkach (np. obiekt kontrolujący bazę danych) Rejestru się używa i jest on dobrym wzorcem - trzeba mieć niepokolei w głowie, żeby twierdzić inaczej Klasy statyczne stosuje się tam, gdzie trzeba (co już powiedzieli moim przedmówcy) i nie jest to żadne udziwnienie Masz mętlik w głowie? Świetnie, powtarzaj mantrę "wszystko zależy od okoliczności, wszystko zależy od okoliczności, wszystko zależy od okoliczności" - codziennie przez godzinę (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Pozdrawiam. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Globalsów się nie używa... bo nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zgodzę się Cytat Singletona się używa ostrożnie - w uzasadnionych przypadkach (np. obiekt kontrolujący bazę danych) Nie zgodzę się, a co jak chcesz mieć parę różnych połączeń w jednej chwili? Już miałem przyjemność z singletonem, więc musiałem napisać okropny kod, bo nie było czasu na przerobienie tej konstrukcji. (Propel jak wiesz pozwala na wiele połączeń, mimo że jak się używa jednego,to jest to nie zauważalne) Cytat Rejestru się używa i jest on dobrym wzorcem - trzeba mieć niepokolei w głowie, żeby twierdzić inaczej Czy takim dobrym, to bym nie był pewien, ale na pewno lepszy niż Globals Cytat Masz mętlik w głowie? Świetnie, powtarzaj mantrę "wszystko zależy od okoliczności, wszystko zależy od okoliczności, wszystko zależy od okoliczności" - codziennie przez godzinę (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Tylko wątpię aby to pomogło ;] @Black-Berry Dwie rzeczy, doświadczenie (praktyka) z różnymi rozwiązaniami, powie Ci co jest lepsze. Bo to jest lepsze, co potem pozwala Ci szybciej i wygodniej pracować. Ponieważ te wszystkie rzeczy, OOP, Design Patterns itd. są po to, aby w przyszłości korzystanie z tak napisanych elementów było łatwo korzystać, i jak już trzeba coś dodać/zmienić, aby to była chwila. Ale to nie jest tak, że jest jedno poprawne rozwiązanie, każdy programista ma swoje preferencje i stąd wynikają te różnice, ale do ogólnych spraw raczej większość jest zgodna. Niestety, tylko doświadczenie w pisaniu i korzystaniu z różnych rozwiązań da Ci pewną pewność jak to rozwiązać... Więc czytaj, korzystaj, pisz i analizuj, jak się sprawują jakieś rozwiązania, próbuj różnych, ogólnie polecamy Propel, Synfony (może jeszcze parę) dla tego, że są przyzwoicie napisane, jak będziesz z nich korzystać, to zobaczysz że jest to wygodne i będziesz mógł podejrzeć jak inni to robią. |
|
|
|
Joachim Peters Jakie metody w klasie News - jak ma to współgrać? 28.08.2008, 17:49:48
LBO Generalnie to zależy od ciebie, ale jeżeli obiekt ... 28.08.2008, 18:03:52
terabit @LBO
takie pytanko
czy jest jakas roznica miedzy... 28.08.2008, 18:07:02
LBO Jest różnica, bo w metodach statycznych opakowujes... 28.08.2008, 18:17:59
Sedziwoj Ogólnie chyba [PHP] pobierz, plaintext <?php$ne... 1.09.2008, 23:35:38
Black-Berry Po co te klasy statyczne? Mi się na przyk... 1.09.2008, 23:45:47
Sedziwoj @Black-Berry
A co daje podejście obiektowe, przeci... 2.09.2008, 00:17:20 
Black-Berry Cytat(Sedziwoj @ 2.09.2008, 01:17:20 ... 2.09.2008, 00:46:13
LBO Cytat(Sedziwoj @ 2.09.2008, 00:35:38 ... 2.09.2008, 00:28:26 
Sedziwoj Cytat(LBO @ 2.09.2008, 01:28:26 ) Moż... 2.09.2008, 00:39:38
LBO Heeh, ja to wiem. Pytam się czy takie rozbicie jes... 2.09.2008, 01:41:32
Black-Berry @Sedziwoj Z tego co mówisz pośrednio wynika, ... 2.09.2008, 10:24:36 
Sedziwoj Cytat(Black-Berry @ 2.09.2008, 11:24... 2.09.2008, 10:38:34 
Black-Berry Cytat(Sedziwoj @ 2.09.2008, 11:38:34 ... 2.09.2008, 10:44:28
Cysiaczek Dlaczego tak wszyscy nie lubią Registry? Przecież ... 2.09.2008, 10:39:49
Sedziwoj @Cysiaczek
Bo taki Registry, wydaje mi się niedale... 2.09.2008, 10:46:11 
Black-Berry Cytat(Sedziwoj @ 2.09.2008, 11:46:11 ... 2.09.2008, 10:48:04 
Sedziwoj Cytat(Black-Berry @ 2.09.2008, 11:48... 2.09.2008, 11:03:09
Cysiaczek CytatRegistry jest o tyle brzydki że trzeba wiedzi... 2.09.2008, 11:35:59 
Black-Berry Cytat(Cysiaczek @ 2.09.2008, 12:35:59... 2.09.2008, 12:16:38 
Sedziwoj Cytat(Black-Berry @ 2.09.2008, 13:16... 2.09.2008, 12:19:12
LBO Cytat(Cysiaczek @ 2.09.2008, 12:35:59... 2.09.2008, 11:54:07
Black-Berry @Cysiaczek A tak z ciekawości to czy problem ... 2.09.2008, 12:35:30
LBO W takim przypadku jestem za Zendowym rozwiązaniem
... 2.09.2008, 13:14:46
Black-Berry Chcesz zob aczyć coś magicznie ślic... 2.09.2008, 13:19:55
LBO o_O mój boże
Zrób z tego obiekt kontekstu. Umieść... 2.09.2008, 13:42:24
Black-Berry A czy taki obiekt kontekstu przekazywany do kazdeg... 2.09.2008, 13:52:33
LBO Nie bo w pełni kontroluję gdzie on jest dostępny. 2.09.2008, 13:58:18
Black-Berry No to teraz już coś rozumiem... Ale w całym framew... 2.09.2008, 14:02:57
LBO Hmmm... jeden i tylko jeden. Cały myk w tym, że ró... 2.09.2008, 14:10:05
Black-Berry @LBO: Dostrzegam Powiedz mi jeszcze po co Ci są p... 2.09.2008, 14:43:26
LBO A kiedy dublujesz settingsy? Powiem Tobie - kiedy ... 2.09.2008, 15:10:41
Black-Berry @LBO wszystko super. Metoda Cysiaczka trochę ... 2.09.2008, 21:20:52
LBO Cytat(Black-Berry @ 2.09.2008, 22:20... 2.09.2008, 21:26:34 
Black-Berry Dzięki za rady:) Wezmę je pod uwagę przy pisaniu n... 2.09.2008, 21:29:34
Cysiaczek To, co pokazałem, to pewna wariacja, a nie sprawdz... 2.09.2008, 21:28:13 
Sedziwoj Cytat(Cysiaczek @ 2.09.2008, 22:28:13... 2.09.2008, 23:26:00
LBO Cytat(Cysiaczek @ 2.09.2008, 22:28:13... 2.09.2008, 21:33:29 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 00:38 |