![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 2 Dołączył: 3.01.2007 Skąd: Żory Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Ostatniio natknalem sie na ciekawy kod.
Zastanawiałem sie czemu zmienna $aObjectCache jest zadeklarowana w ciele metody a nie klasy. Moje obserwacje. W duzej aplikacji gdzie odwlanie do ObjectFactory::getInstance() jest liczone w setkach wydajnosc tego rozwiazania jest lepsza niz deklaracja statycznej zmiennej w ciele klasy i odwolywanie sie do niej poprzez ObjectFactory::$aObjectCache; Wszystkie tworzone obiekty sa zapisywane w tej zmiennej statycznej i kolejne odwolanie sie do jakiegos obiektu, ktory wczesniej byl zainiciowany powoduje pobranie go z tablicy $aObjectCache a nie powonwe czytanie z bazy czy ewentualnie z cache. Jestem ciekaw co o tym mysla forumowicze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 18 Dołączył: 19.04.2008 Ostrzeżenie: (10%) ![]() ![]() |
Na moje oko to dbanie np. o oszczednosc pamieci kiedy sprodukujesz 100 obiektow, ktore roznia sie wszystkim oprocz jednej skladowej - jakiejs duzej tablicy itp.
Druga sprawa to mozliwosc odwolania sie do metody/skladowej bez inicjowania obiektu co mozna stosowac roznie, np. do uzyskania indywidualnej przestrzeni dla nazw wlasnych funkcji co pozwoli unikac kolizji z fukcjami innych ludzi z projektu. Mozna tez po prostu odpalic sobie jakies potrzebne dzialanie przed stworzeniem jakiejkolwiek instancji - czyli uzywac funkcji z obiektu a niby nie z obiektu - inaczej mowiac ponowne wykorzystanie kodu. Fukcja poza obiektem np. nie moglaby dzialac na nieudostepnionych skladowych obiektu choc robilaby to samo co fukcja wewnetrzna - i bylyby 2 fukcje a nie 1. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:18 |