Cytat(hawk @ 2005-08-28 14:40:26)
No ale skoro "tylko wtedy kiedy są naprawdę potrzebne", to znaczy że nie zawsze, prawda? I tutaj właśnie mamy korzyść, bo obiekt Handle/Proxy/whatever jest malutki, a obiekt docelowy zapewne większy.
Ja uważam że w warstwie prezentacji nie powinno się ich stosować. Utrudnia to zrozumienie kodu i co najważniejsze nie daje wymiernych korzyści. Nie ma tam takiego stopnia skomplikowania, jaki panuje w warstwie dziedziny. Czyli mamy całkowitą kontrolę nad tym co robimy, czego nie można powiedzieć o modelu dziedziny.
Konkrety, Tworzysz plik index.php a w nim inicjujesz pluginy i filtry (wszystko skoncetrowane w jednym miejscu). Wyklucza nam to problem wielokrotnego ładowania jednego, tego samego elementu (jedna z głównych przyczyn dla których stosuje się Lazy Initialization). Dwa, Stosujesz 'pustą' inicjalizację, czyli nie wykonujesz żadnych konkretnych operacji podczas tworzenia obiektu. Dopiero na samym końcu następuje właściwa faza działania programu, tzn. operacje na modelu i tym podobne rzeczy. Czyli poza znikomym spadkiem użycia pamięci (powtarzam, jest to warstwa prezentacji, tj. filtry, akcje, itp. małe klasy, które nigdy nie będą potężnymi bibliotekami) nie osiągasz nic więcej bo nie generujesz większych obciążeń podczas tworzenia obiektów (czego nie można powiedzieć o elementach warstwy dziedziny).
Posumowując, jeżeli podczas inicjalizacji nie wykonuje się 'większych' operacji (takich jak np. nawiązanie połączenia z bazą danych) to jak dla mnie, nie opłaca się stosować takich rozwiązań (pokreślam, cały czas mam na myśli warstwę prezentacji, która ma nieporównywalnie mniejszy współczynnik stopnia skomplikowania niż dziedzina czy warstwa usług).
Pozdrawiam, emilio.