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%)
-----


Wg. tego co napisalem pare postów wyżej w każdej klasie bym musiał mieć metode "Instance"(Get) by tworzyć singletona. Przy paru klasach to jest jeszcze ok ale im bardziej będzie się rozwijał projekt to może powstać bałagan.
Napisałem coś takiego (działa):
  1. <?php
  2.  
  3. class Singleton {
  4. var $var;
  5.  
  6. function Singleton()
  7. {
  8. echo &#092;"Singleton::Singleton();<br>\";
  9. }
  10.  
  11. function &Get($name)
  12. {
  13. static $inst = array();
  14. $inst[$name] = NULL;
  15.  
  16. if ($inst[$name] == NULL)
  17. $inst[$name] = new $name;
  18.  
  19. return $inst[$name];
  20. }
  21. }
  22. class Singleton2 {
  23. var $var;
  24.  
  25. function Singleton2()
  26. {
  27. echo &#092;"Singleton2::Singleton();<br>\";
  28. }
  29.  
  30.  
  31. }
  32.  
  33. ?>

Ale jak zauważył Yarecki jest problem z przekazywaniem dynamicznej ilości parametrów do konstruktora danej klasy. Czy można to rozwiązac jako przekazanie tablicy do metody Get?? Chodzi mi o coś takiego:
  1. <?php
  2.  
  3. ...
  4. function &Get($name, $param=array())
  5. {
  6. static $inst = array();
  7. $inst[$name] = NULL;
  8.  
  9. if ($inst[$name] == NULL)
  10. $inst[$name] = new $name($param);
  11.  
  12. return $inst[$name];
  13. }
  14. ...
  15.  
  16. ?>

Czy to jest ok?
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: 27.12.2025 - 00:45