Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SINGLETON]Czy można stosować getInstance() w statycznych metodach?
cyklotrial
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 1
Dołączył: 5.06.2009

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


Hej,

Zastanawiam się czy wykorzystanie metody "getInstance" w metodach statycznych, w klasie która jest Singletonem jest poprawne.
  1. class Singleton{
  2. private static $instance;
  3. private $varOne = 0;
  4. private function __construct(){}
  5.  
  6. static function getInstance(){
  7. if(self::instance==null){
  8. self::instance=new Singleton();
  9. }
  10. return self::instance;
  11. }
  12.  
  13. static function doSomething(){
  14. echo self::getInstance()->varOne;
  15. }
  16. }

Zamiast pisać:
  1. Singleton::getInstance()->doSomething();

Mogę używać:
  1. Singleton::doSomething();


Dlaczego tak? Chciałbym skrócić zapis najczęściej używanych metod, ale mam spore obawy co do tego czy taki zapis nie jest niezgodny z wzorcem.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


Cytat(scanner @ 14.06.2005, 13:39:37 ) *
<span style="font-weight: bold;">Wszelkie kolejne wersje danego projektu proszę umieszczać w tym samym wątku, zgodnie z zasadą : jeden projekt = jeden wątek.

Pozwoli to zmniejszyć bałagan na forum oraz pokaże rozwój ocenianych projektów w czasie.</span>

Przeczytaj sobie dokładnie (pełno tego w internecie) czym jest singleton w PHP.
Twoje przykładowe getInstance jest potrzebne, jeśli to faktycznie ma być Singleton i ma być stworzona tylko jedna instancja danej klasy. Dobrym przykładem jest np. singleton połączenia z bazą danych. To czy potrzebny Ci singleton, już zależy od Ciebie i aplikacji
Go to the top of the page
+Quote Post

Posty w temacie


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 - 23:58