![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
dla mnie to chore wywoływac metodę magiczną wewnątrz klasy.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@Eby: Jak można porównywać return do echo? Poza tym ten przykład to też wiele z tematem wspólnego nie ma. Jak już to powinieneś porównać takie zapisy:
Chociaż osobiście wszystkie uważam za niezbyt trafne. @wookieb: Co do pierwszego listingu... jest on chyba niekompletny bo kompletnie nie trzyma się kupy - albo ja nie potrafię sobie wyobrazić co ten kod miałby robić (konkretniej metoda __set w przypadku gdy podajemy klucz inny niż "cache"). Poza tym już uwidacznia się tu pierwszy "wtf". Na metodę __set() spada obowiązek wykonywania wielu zadań - czy nie lepiej by było: I używać kodu normalnie, tj: Raczej nie przekonasz mnie, że interfejs drugiego rozwiązania jest lepszy... bo jak dla mnie to jest on okropny i podatny na błędy. Cytat A co gdybym dopisał opcję ustawiania flagi $useCache na false w przypadku usunięcia obiektu Cache? Dodać metodę odpowiedzialną za usuwanie cache, która po usunięciu zmieni flagę?Cytat Klasa to nie tablica, której przypisujemy po prostu wartości do właściwości. Służy do wykonywania konkretnych zadań w których mieści się kontrola nad wartościami w jej wnętrzu. Gdy pisałem o tablicach/kolekcjach miałem na myśli taką sytuację:Pomijając fakt o ile bardziej podatne na błędy i mniej elastyczne jest drugie rozwiązanie (ograniczone możliwości dla nazwania kluczy, problem gdy nazwa klucza jest w zmiennej) spójrzmy na całą różnicę pomiędzy użyciem obu rozwiązań:
Co do drugiego przypadku (z klasą Session). Znowu ten sam problem - dziesiątki IFów. Na pewno żaden z nas nie byłby szczęśliwy mając wykorzystywać tą klasę. Takie rozwiązanie dla mnie byłoby do zaakceptowania wyłącznie w przypadku konieczności zachowania wstecznej kompatybilności. Tj. zakładając, że mamy już kod, klasy, która ma publiczną właściwość "id" musimy dodać jeszcze opcję usuwania użytkownika gdy jest ona fałszem. Paskudne rozwiązanie ale jedno z niewielu jakie pozwala na zachowanie tej nieszczęsnej kompatybilności. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 1 Dołączył: 16.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
@Eby: Jak można porównywać return do echo? Poza tym ten przykład to też wiele z tematem wspólnego nie ma. Jak już to powinieneś porównać takie zapisy: Chociaż osobiście wszystkie uważam za niezbyt trafne. Wybacz, nie dokładnie opisałem o co mi chodzi przedstawiając jedynie pewien efekt końcowy. Pisząc o wrapperze "helper" w temacie o metodach magicznych miałem na myśli raczej coś takiego :
Owszem Twój zapis zrobi to samo, ale ja na końcu mam pewien obiekt z którym mogę coś jeszcze zrobić (idziemy w kierunku aspx i kontrolek) - i wyrzucenie tego na standardowe wyjście jest tylko jedna z możliwości. Twój zapis tego nie umożliwia niestety. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 18:50 |