Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 204 Pomógł: 0 Dołączył: 26.12.2003 Skąd: Rzeszów Ostrzeżenie: (0%)
|
Może mnie ktoś oświecić dlaczego używa się singletonów? np:
skoro to samo można osiągnąć w ten sposób?:
Widze jakie są różnice, jednak nie rozumiem dlaczego singletony są stosowane skoro zapis Foo::bar(); jest wygodniejszy i kod klasy krótszy... Czy za pomocą singletonów można zrobić coś, o czym nie wiem? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 204 Pomógł: 0 Dołączył: 26.12.2003 Skąd: Rzeszów Ostrzeżenie: (0%)
|
Bora: Foo::$bar do zmiennej i Foo::bar do stałej
Cudi: Mi też się wydaje, że powinno się używać singletonów, tylko zastanawiam się dlaczego:) W PHP4 było to uzasadnione, w PHP5 też musi się znaleźć jakiś powód;) Naturalnie czasem bez singletonów się nie obejdzie. Weźmy na przykład klasę Template, gdy chcemy mieć jeden główny szablon, do którego moglibyśmy odwołać się z każdej innej klasy, wtedy możemy napisać np: [php:1:71a7711270]<?php final class Page { private static $reference; private function __construct() {} public static function getRef() { if(self::$reference == null) { self::$reference = new Template('Main'); } return self::$reference; } } $main = Page::getRef(); $main->assign('title', 'Main'); $main->assign('css', 'file', 'main'); itd... ?>[/php:1:71a7711270] Ale co w przypadkach małych klas, np takich jak Temp, pokazana wcześniej. Nie ma sensu chyba tworzyć zmiennej referencji gdy zależy nam na wygodnym i szybkim dostępie do metod, np Temp::clear(), Temp::add('test'); Temp::get() itd... To samo tyczy się klasy SQL, nie zaobserwowałem gromadzenia się żadnych śmieci, nie wygląda też, żeby działała wolniej. Chyba faktycznie musimy poczekać na kogoś mądrzejszego:) |
|
|
|
Ozzy PHP5 i Singletony 17.03.2004, 16:15:13
Cudi Sigleton pozwala Ci działać na jednej instancji da... 17.03.2004, 16:22:25
Ozzy tak, ale w php5 nie musze używać zmiennych globaln... 17.03.2004, 18:24:14
Cudi Singletony są zastępstwem dla obiektów globalnych ... 17.03.2004, 18:32:08
Ozzy Ja cię rozumiem, ale w php5 nie ma takiej potrzeby... 17.03.2004, 18:38:44
Simpson CytatJa cię rozumiem, ale w php5 nie ma takiej pot... 17.03.2004, 18:44:15
Ozzy Cytatw tej klasie znajduja sie zmienne ktore sa Ci... 17.03.2004, 18:50:55
Wankster Simpson: Ozzy mówił o PHP5, a tam możesz się odwoł... 17.03.2004, 18:51:45
Simpson a no to chyba ze tak. Nie znam aż tak dokłądnie ph... 17.03.2004, 18:53:10
Cudi Tak czy siak singleton może być przydatny, nie będ... 17.03.2004, 18:59:16
Ozzy CytatTak czy siak singleton może być przydatny
prz... 17.03.2004, 19:05:17
Cudi Potrzebna by była bardzo rozbudowana klasa, a Ty m... 17.03.2004, 19:55:29
Ozzy z tym się zgodzę, bo sam używam takiego rozwiązani... 17.03.2004, 20:28:38
Bora z static nie można przesadzać bo przez nadmierne u... 17.03.2004, 20:55:40
Ozzy Cytatz static nie można przesadzać bo przez nadmie... 17.03.2004, 21:13:37
Cudi Ja preferuję tworzenie wewnątrz klasy metodę która... 17.03.2004, 21:15:42
Bora CytatCytatz static nie można przesadzać bo przez n... 17.03.2004, 21:24:31
Cudi Myśle że właśnie sam sobie odpowiedziałeś na swoje... 18.03.2004, 17:38:42
Balin czy moglibyscie podac linki do artykulow omawiajac... 18.03.2004, 19:07:33
Ozzy http://www.phppatterns.com/index.php/artic...ticle... 18.03.2004, 19:20:04
hawk Formalnie rzecz biorąc, singletony nie są potrzebn... 18.03.2004, 23:42:55
Ozzy CytatA poza tym, wielkie klasy z samymi metodami s... 19.03.2004, 08:02:40 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 18:39 |