🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #231900

Re: Dobre praktyki

#231900
From: Marek S
Date: Sat, 27 Jan 2018 22:56
43 lines
3593 bytes
W dniu 27-01-2018 o 23:26, Borys Pogoreło pisze:

> Nie. Przeczytaj jeszcze raz definicję singletona. Obiekt zainicjowany
> globalnie jest, cóż, po prostu obiektem zainicjowanym globalnie. I niczym
> więcej. Jak go zapakujesz w klasę statyczną i zapewnisz, że jest tworzona
> tylko jedna instancja tego obietu, to otrzymujesz singletona.

Pewnie na czymś się zafiksowałem błędnie. W/g mnie sigleton nie ma nic 
wspólnego z koniecznością używania obiektów statycznych. Może, ale nie 
musi.

Np. niech naszą aplikację inicjuje klasa "kernel". Ona wewnątrz siebie 
m.in. tworzy obiekt klasy Database. Klasa Database zaraz po 
zainicjowaniu tworzy połączenie i udostępnia nie-statyczne metody do 
realizacji zadań w ramach tego połączenia. Kernel zapewnia, że tylko 
jedna instancja tejże klasy powstanie. Wszystkie inne obiekty 
korzystające z kernela zyskują automatycznie dostęp do bazy danych. 
Zgodnie z tym co napisałeś, skoro kernel tworzy tylko jedną instancję 
bazy danych, to jest już singletonem?

Bo jeśli tak, to na przykładzie bazy danych - jak inaczej tworzyć z nią 
komunikację? Za każdym razem otwierać nowe połączenie? To zabójstwo dla 
wydajności przecież.

> Tak. Przypisujesz pojęciom inne znaczenia. Z tego możesz wywieść dowolny
> wniosek.

Ok. To może inaczej: sposób wykorzystania klasy nadrzędnej może zmienić 
jej definicję wzorca z singletona na DI? Pytanie stąd, że dla mnie 
wzorzec zaczyna się pomiędzy interfejsem klasy nadrzędnej a resztą 
otoczenia i nie rzutuje na nazewnictwo wzorca współpracy danej klasy z 
otoczeniem. Jednakże sama klasa nadrzędna nie stanowi nigdy wzorca 
innego niż singleton. Czyli jeden projekt informatyczny jest singletonem 
w pierwszych liniach kodu a cała reszta komunikacji z singletonem może 
odbywać się zgodnie ze wzorcem DI. Co nie powoduje iż na kolejnym etapie 
zagnieżdżenia znów jakiegoś singletona zastosujemy otrzymując wzorzec 
mieszany dla całości.

Czy to nie tak działa definicja wzorca?

-- 
Pozdrawiam,
Marek
Technical Details
Message-ID: <p4j03c$ia2$1@node1.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <2lhebv1xabri$.dlg@tyczka.com> <6d0bd754-9b46-46ce-98ff-c5265a9a93af@googlegroups.com> <chac9zcm8l6a.1gxug7ng6lbce$.dlg@40tude.net> <cd0f750f-2346-4016-bbbd-a72c386c561d@googlegroups.com> <slrnp6hci6.23ml.wojciech.bancer@pl-test.org> <fc6bfbc5-c858-4156-95c5-cb276d07067e@googlegroups.com> <slrnp6kee7.2lbk.wojciech.bancer@pl-test.org> <p4dnnf$m5b$1@node2.news.atman.pl> <slrnp6kpt1.30s7.wojciech.bancer@pl-test.org> <p4f8p3$tfb$1@node1.news.atman.pl> <slrnp6oqo7.g5g.wojciech.bancer@pl-test.org> <p4hrvu$ctn$1@node2.news.atman.pl> <11l45q8stqimo.1ek020f0hu8h9$.dlg@40tude.net> <p4it89$fjh$1@node1.news.atman.pl> <1essghgq5rjr3$.w7m0zex3vvk4.dlg@40tude.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Marek S <precz@spamowi.com>
Newsgroups: pl.comp.lang.php
Subject: Re: Dobre praktyki
Date: Sat, 27 Jan 2018 23:56:37 +0100
Organization: ATMAN - ATM S.A.
Lines: 43
Message-ID: <p4j03c$ia2$1@node1.news.atman.pl>
References: <2lhebv1xabri$.dlg@tyczka.com> <6d0bd754-9b46-46ce-98ff-c5265a9a93af@googlegroups.com> <chac9zcm8l6a.1gxug7ng6lbce$.dlg@40tude.net> <cd0f750f-2346-4016-bbbd-a72c386c561d@googlegroups.com> <slrnp6hci6.23ml.wojciech.bancer@pl-test.org> <fc6bfbc5-c858-4156-95c5-cb276d07067e@googlegroups.com> <slrnp6kee7.2lbk.wojciech.bancer@pl-test.org> <p4dnnf$m5b$1@node2.news.atman.pl> <slrnp6kpt1.30s7.wojciech.bancer@pl-test.org> <p4f8p3$tfb$1@node1.news.atman.pl> <slrnp6oqo7.g5g.wojciech.bancer@pl-test.org> <p4hrvu$ctn$1@node2.news.atman.pl> <11l45q8stqimo.1ek020f0hu8h9$.dlg@40tude.net> <p4it89$fjh$1@node1.news.atman.pl> <1essghgq5rjr3$.w7m0zex3vvk4.dlg@40tude.net>
NNTP-Posting-Host: 89-69-207-111.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1517093804 18754 89.69.207.111 (27 Jan 2018 22:56:44 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Sat, 27 Jan 2018 22:56:44 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2
In-Reply-To: <1essghgq5rjr3$.w7m0zex3vvk4.dlg@40tude.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit