Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Singleton - O Co W Tym Biega?
gkeb
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 6.03.2004

Ostrzeżenie: (0%)
-----


W paru miejscach forum i nie tylko bylo pisane o wzorcu singleton ale jakos nigdzie nie znalazlem wiekszej informacji o tym. Czy ktos moglby podac jakies linki dotyczace tego tematu?? Albo napisze o co w tym biega (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gkeb
post
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 6.03.2004

Ostrzeżenie: (0%)
-----


Rozumiem juz istote dzialania (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Mam coś takiego:
  1. <?php
  2. class foo
  3. {
  4.  
  5.  
  6. function &instance()
  7. {
  8. static $instance = false;
  9. if ( $instance === false )
  10. {
  11. $instance =& new foo();
  12. }
  13. return $instance;
  14. }
  15.  
  16. function blah()
  17. {
  18. return &#092;"Działa!\";
  19. }
  20. }
  21.  
  22. class bar
  23. {
  24. function funkcja()
  25. {
  26. $foo =& foo::instance();
  27. return $foo->blah();
  28. }
  29. }
  30.  
  31. $b =& new bar();
  32. echo $b->funkcja();
  33. ?>


i wszystko jest ok, ale mam jeszcze pewne wątpliwości.
W powyższym przykładzie (który notabene znalazłem na forum (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) klasa główna (foo) jest inicjowana przez klase bar. Gdy próbowałem przenieść wywołanie funkcji instance do konstruktora klasy foo to mi się wszystko wysypało.
Taki był konstruktor:
  1. <?php
  2.  
  3. function foo()
  4. {
  5. $this->&instance();
  6. }
  7.  
  8. ?>

Jak to zrobić prawidłowo?
Czy dobrze rozumuje że każda klasa musi mieć swoja własną funkcje instance, czy też jest możliwość by funkcja instance byla tylko jedna jak i $instance była tablicą(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Przepraszam że tak mieszam ale single ton jest dla mnie czymś nowym a OOP zajmóje też sie od niedawna, ale chce sie tego nauczyć (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- gkeb   Singleton - O Co W Tym Biega?   14.08.2004, 21:56:40
- - Dabroz   A ja mam pytanie: czy naprawdę Google trzyma swoje...   14.08.2004, 22:40:44
- - gkeb   szukalem na google wiec nie miej pretensji. nie zn...   14.08.2004, 23:31:09
- - Dravo   Witaj Rada: poprzegladaj przykladowe kody z wykorz...   15.08.2004, 07:25:13
- - Dabroz   Cytat(gkeb @ 2004-08-15 00:31:09)szukalem na ...   15.08.2004, 11:18:21
- - gkeb   eee ten mi umknal sorki za zamieszanie   15.08.2004, 12:14:58
- - Yarecki   Cytat(Dravo @ 2004-08-15 08:25:13)A ja tylko ...   15.08.2004, 13:36:05
- - gkeb   Rozumiem juz istote dzialania Mam coś takiego: ...   21.08.2004, 11:00:33
- - Yarecki   Cytat(gkeb @ 2004-08-21 12:00:33)[PHP] pobier...   21.08.2004, 11:59:10
- - gkeb   Wg. tego co napisalem pare postów wyżej w każdej k...   22.08.2004, 09:58:50
- - Yarecki   Cytat(gkeb @ 2004-08-22 10:58:50)... Czy to j...   23.08.2004, 04:24:14
- - matid   Cytat(gkeb @ 2004-08-22 10:58:50)... Czy to j...   23.08.2004, 09:28:09
- - Yarecki   matid: to mozna rozwiazac np. tak: [PHP] pobierz,...   23.08.2004, 12:39:12
- - matid   Chyba się niezbyt jasno wyraziłem. Chodzi mi o to,...   23.08.2004, 14:59:43
- - hawk   Cytat(Yarecki @ 2004-08-23 04:24:14)Ja używam...   23.08.2004, 18:48:19
- - Yarecki   Cytat(hawk @ 2004-08-23 19:48:19)Po co używać...   23.08.2004, 21:33:20
- - gkeb   matid a jaki problem w tym ze do konstruktora prze...   23.08.2004, 21:48:51
- - matid   Cytat(gkeb @ 2004-08-23 22:48:51)matid a jaki...   24.08.2004, 12:10:33
- - hawk   Cytat(Yarecki @ 2004-08-23 21:33:20)Trochę po...   24.08.2004, 22:21:12
- - gkeb   Cytat... A w ogóle to singleton nie powinien mieć ...   24.08.2004, 22:33:09
- - matid   Cytat(hawk @ 2004-08-24 23:21:12)A w ogóle to...   25.08.2004, 09:44:26
- - hawk   Tylko że to już nie jest singleton... Idea podobna...   25.08.2004, 18:13:39


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 11:15