Article View: pl.comp.lang.php
Article #231892Re: Dobre praktyki
From: Wojciech Bancer
Date: Sat, 27 Jan 2018 23:24
Date: Sat, 27 Jan 2018 23:24
58 lines
3265 bytes
3265 bytes
On 2018-01-27, Marek S <precz@spamowi.com> wrote:
[...]
>> Gdzie tu widzisz wzorzec singletona?
>
> W tym, że jest obiekt nadrzędny nad wszystkimi, który tylko można
> zainicjować i nic więcej. W całej aplikacji zawiera tylko jedno
> zainicjowanie. Jest singlem.
To nie jest definicja wzorca singletona.
[...]
>> za singletona tylko dlatego że jest jeden :P
>
> No więc jesteśmy coraz bliżej zdefiniowania rozbieżności interpretacji.
>:-) Nie bardzo rozumiem czemu przyjmujesz definicję z Wiki za
> nieprawdziwą. Może małymi krokami i na przykładzie.
>
> Ok, powiedz mi na podstawie kodu:
>
> class cosTam() {}
> $obj=new cosTam();
>
> Powyższe to całość aplikacji. Nie ma więcej kodu. To jest jedna klasa i
> obiekt z niej. Czy jest to wzorzec singletona czy DI czy cokolwiek?
Nie. Singleton ma prywatny konstruktor i nie pozwala na stworzenie obiektu
poza kontrolą tegoż singletona. W innym wypadku:
1) nie jesteś w stanie zagwarantować globalności obiektu
2) nie jesteś w stanie zagwarantować, że obiekt jest stworzony raz.
Singleton to coś w stylu:
class cosTam() {
private static $instance = null;
private function __construct() {}
public static function getInstance() {
if (self::$instance == null) {
self::$instance = new Singleton();
}
return self::$instance;
}
}
W Java masz podobnie:
https://en.wikipedia.org/wiki/Singleton_pattern#Implementation
Każdy singleton zakłada kontrolę nad tworzeniem instancji takiego
obiektu. Jeśli jej nie ma, to nie jest to singleton.
To że sobie zrobisz klasę i użyjesz raz nie czyni z niej singletona.
--
Wojciech Bańcer
wojciech.bancer@gmail.com
Technical Details
Message-ID:
<slrnp6q2gs.s93.wojciech.bancer@pl-test.org>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.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> <slrnp6p0qc.gpr.wojciech.bancer@pl-test.org> <p4iev1$uic$1@node2.news.atman.pl> <slrnp6pl4l.mtr.wojciech.bancer@pl-test.org> <p4ip7b$boi$1@node1.news.atman.pl> <slrnp6ptnk.q0u.wojciech.bancer@pl-test.org> <p4iur2$h47$1@node1.news.atman.pl>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!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Newsgroups: pl.comp.lang.php From: Wojciech Bancer <wojciech.bancer@gmail.com> Subject: Re: Dobre praktyki 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> <slrnp6p0qc.gpr.wojciech.bancer@pl-test.org> <p4iev1$uic$1@node2.news.atman.pl> <slrnp6pl4l.mtr.wojciech.bancer@pl-test.org> <p4ip7b$boi$1@node1.news.atman.pl> <slrnp6ptnk.q0u.wojciech.bancer@pl-test.org> <p4iur2$h47$1@node1.news.atman.pl> Organization: None Date: Sun, 28 Jan 2018 00:24:12 +0100 User-Agent: slrn/1.0.3 (Darwin) Mime-Version: 1.0 Message-ID: <slrnp6q2gs.s93.wojciech.bancer@pl-test.org> Lines: 58 NNTP-Posting-Host: 37.47.128.20 X-Trace: 1517095452 unt-rea-a-01.news.neostrada.pl 694 37.47.128.20:14481 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit