Article View: pl.comp.lang.php
Article #231902Re: Dobre praktyki
From: Marek S
Date: Sat, 27 Jan 2018 22:08
Date: Sat, 27 Jan 2018 22:08
36 lines
3033 bytes
3033 bytes
W dniu 27-01-2018 o 22:49, Borys Pogoreło pisze: > Wojtek próbuje Ci wytłumaczyć, że to ma krytyczne znaczenie podczas > testów, gdzie często nie masz dostępu do połączenia z bazą. Albo z > takiego połączenia byłoby więcej problemów, niż pożytku. > > Owszem, jeden singleton jeszcze da się jakoś obejść. Ale ten wzorzec > często kusi. Ja to wszystko doskonale rozumiem. Chodzi mi o zupełnie coś innego. Przeczytaj moją ostatnią wypowiedź udzieloną Wojtkowi. Wyjaśnię o jaki tok rozumowania mi chodzi. Za pomocą singletonów niektórzy piszą całą aplikację. Tego nawet nie biorę pod uwagę. Chodzi mi o to, że nie da się w zasadzie tak napisać aplikacji aby nie miała jednego, nadrzędnego singletona. Cała aplikacja bazuje na modelu DI ale jej "kernel" _zawsze_ musi być zainicjowany globalnie. A jeśli jest zainicjowany globalnie to staje się singletonem. Pojęcie singletona dotyczy tylko nadrzędnego obiektu dla wszystkich. Cała reszta może nie spełniać definicji singletonów. Może to abstrakcyjnie zilustruję. Niech oprogramowanie DI przypomina książkę. Są w niej rozdziały, w rozdziałach zdania, w zdaniach wyrazy. Widać hierarchię. Każdy z wyrazów, rozdziałów ma dostęp do książki, której część stanowi. Książka pozwala na współzależność rozdziałów. A od czego zależy sama książka? Od niczego! Stanowi samoistny byt. Singleton! :-) Uruchamiamy na serwerze 10 aplikacji lub 10 instancji tej samej aplikacji - mamy 10 singletonów. Czy robię jakiś błąd myślowy? -- Pozdrawiam, Marek
Technical Details
Message-ID:
<p4it89$fjh$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-mailReferences:
<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>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:08:02 +0100 Organization: ATMAN - ATM S.A. Lines: 36 Message-ID: <p4it89$fjh$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> NNTP-Posting-Host: 89-69-207-111.dynamic.chello.pl Mime-Version: 1.0 X-Trace: node1.news.atman.pl 1517090889 15985 89.69.207.111 (27 Jan 2018 22:08:09 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Sat, 27 Jan 2018 22:08:09 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 In-Reply-To: <11l45q8stqimo.1ek020f0hu8h9$.dlg@40tude.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit