![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jak go ulepszyc bym nie musial deklarowac w kazdej klasie public static $instance? jesli usune deklaracje tych zmiennych statycznych z klas to wtedy tworzy mi singleton zamiast klasy tej co trzeba ![]() Ten post edytował Orzeszekk 7.11.2011, 11:46:45 -------------------- "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
Tom Cargill, Bell Labs |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hmm no nie dziwne - jeśli nie dasz w każdej klasie $instance to będziesz się z każdej odwoływał zawsze do tego samego
![]() ![]() Moim zdaniem powinno się dawać statyczne $intance dla każdej klasy - sama funkcja typu "getInstance" może być dziedziczona. To i tak mniej a na bank będzie działać. Drugim rozwiązaniem jest zrobienie statycznej tablicy "instancji" - wtedy w get() odwołuj się do $instance[self::$nazwa] - To powinno troszkę pomóc i nie byłoby potrzeby dawać $instance w tych klasach. ![]() ALBO: Zupełnie inne podejście ![]() Można zrobić inaczej ![]() ![]()
Zamiast używać wtedy a::getInstance(); używamy singleton::getInstance('a'); - to daje nawet więcej możliwości ;P Co Ty na to? Ten post edytował Sephirus 7.11.2011, 12:34:02 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Fabryka singletonow chyba nie zapewnia ze te klasy tworzone jako singletony maja tylko jedna instancje? wciaz mozna je utworzyc konstruktorem.
fabryki singletonow uzywam :] dla klas gdzie musi byc np. po jednej instancji singletona dla kazdego ID, wtedy tez robie taka tablice jak ty. Tylko ze wtedy ta fabryka singletonow jest definiowana w ciele tej samej klasy ktorą zwraca wiec moge zrobic chroniony konstruktor. Myslalem nad czyms zeby tworzyc static protected $instance zaraz przed wywolaniem konstruktora w singletonie, jakos dynamicznie, ale z tego co widze nie da się. tablica statyczna $instance chyba jeszcze bardziej spowolni ten singleton bo za kazdym razem trzeba bedzie wywołac funkcje get_called_class. skoro nie ma lepszego rozwiazania to bede dodawal singletony recznie ![]() -------------------- "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
Tom Cargill, Bell Labs |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 15:38 |