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: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%)
|
Ogólnie chyba wykorzystanie DAO i AR ;] Czy jakoś tak to szło, mi się zawsze pojęcia mieszają. Można i tak (Propel-way), ale czy przy tak niewielkim zastosowaniu trzeba rozbijać to na dwie klasy na tabelę? Po co te klasy statyczne? Mi się na przykąłd cały kod strony ze strukturą, kategoriami i jakimś tam menu generuje w 50ms. Dojdę moze do 100ms ale to i tak nic nie zmienia bo złożoność obliczeniowa zawsze będzie rzędu On czyli liniowa. Co one własciwie dają ? (w sensie wydajnościowym) Może nie dają nic, ale są bardziej czytelne? Po co tworzyć obiekt, skoro taki manager (jaki reprezentują metody statyczne) jest bezstanowy. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Można i tak (Propel-way), ale czy przy tak niewielkim zastosowaniu trzeba rozbijać to na dwie klasy na tabelę? To był przykład, jak masz metody pobierające np. najnowsze News'y losowe, czy jakiekolwiek zbiory, to umieszczasz to tam, masz w jednym miejscu wszystkie metody pobierania News'ów, dzięki temu, jak jest wymagana poprawka, zmiana funkcjonalności, masz jedno miejsce do edycji (albo dobry punkt zaczepienia, przy większych zmianach). Czyli taki Peer operuje ogólnie na News'ach, a obiekty klasy News na konkretnym elemencie, i tam masz metody np. do pobierania autora, czy co tam będzie potrzebne, przy operowaniu na konkretnej News'ie. P.S. Hibernate ma jeszcze bardziej to rozbite. |
|
|
|
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 Heeh, ja to wiem. Pytam się czy takie rozbicie jes... 2.09.2008, 01:41:32
Cysiaczek Globalsów się nie używa... bo nie
Singletona się ... 2.09.2008, 06:08:11 
Sedziwoj Cytat(Cysiaczek @ 2.09.2008, 07:08:11... 2.09.2008, 07:41:13
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: 27.12.2025 - 05:15 |