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: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%)
|
@Sedziwoj Z tego co mówisz pośrednio wynika, że najlepiej przekazywać wszystko jawnie w konstruktorze bo moze się okazać, że chcesz np mieć osobne połaczenie z bazą dla przykładowego newsMenager'a. Idąc dalej tym tropem dobrze by było nie przekazywać za każdym razem 15 obiektów tylko już lepiej wrzucić wszystko do rejestru i przekazywać tylko jeden obiekt rejestru. Obiekt główny po którym dziedziczy każdy inny już sobie poustawia odpowiednie pola... Ale zauważ że w ten sposób tuszujesz tylko globalność niektórych obiektów.
No i moje dalsze rozumowanie: Po co tuszować? Nie lepiej w konstruktorze obiektu głównego i tylko w nim użyć słówka kluczowego global aby przypisać globalne obiekty do pól dziedziczących? Wtedy już nic nie musze przekazywać w konstruktorach, no i nie chowam śmieci pod dywan za pomocą rejestru (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował Black-Berry 2.09.2008, 10:27:11 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
No i moje dalsze rozumowanie: Po co tuszować? Nie lepiej w konstruktorze obiektu głównego i tylko w nim użyć słówka kluczowego global aby przypisać globalne obiekty do pól dziedziczących? Wtedy już nic nie musze przekazywać w konstruktorach, no i nie chowam śmieci pod dywan za pomocą rejestru (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) W lesie masz rozrzucone kuleczki, teraz je znajdź trudne, co nie? A wyobraź sobie że masz teraz do każdej przywiązaną nitkę, tak że zbiegają się wszystkie w Twoich dłoniach, o wiele łatwiej znaleźć? Ogólnie zaplanowanie tak aplikacji, aby mieć zawsze dostęp do rzeczy potrzebnych w danym miejscu i nie robić tego na około, to jest trudne zagadnienie. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%)
|
W lesie masz rozrzucone kuleczki, teraz je znajdź trudne, co nie? Chyba mnie właśnie nawróciłeś (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) A wyobraź sobie że masz teraz do każdej przywiązaną nitkę, tak że zbiegają się wszystkie w Twoich dłoniach, o wiele łatwiej znaleźć? Cytat Inicjujesz rejestr, dodajesz do niego obiekty kojarząc je w kolekcje, potem tylko do konstruktora leci konkretna kolekcja - jako jeden parametr. Konstruktor sobie to rozpakowuje i voila! Można prosić o jakiś manual do poczytania? O co chodzi z tymi kolekcjami? Chodzi tylko o grupowanie w logikę czy to ma też względy wydajnościowe jeśli nie przekazuję całego rejestru?
Taki rejestr może kojarzyć obiekty na podstawie implementowanych interfejsów, co jest kolejnym przykładem ich zastosowania. Omijasz wówczas jawne przypisywanie do kolekcji. Ten post edytował Black-Berry 2.09.2008, 10:46:26 |
|
|
|
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
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
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:56 |