juan_gandhi: (Default)
[personal profile] juan_gandhi
Как-то я не врубался во вред синглтонов - пока не пришлось рефакторить одну и ту же апликацию, разнесённую по двум платформам методом копи-пейста. Всякая собака ссылается на синглтон. Будто нельзя в параметрах получить (di, т.е.)

Так я о чём? Да вот: синглтон класса - это примерно как поименованная общая область. Вот вам имя, вот вам инстанс, и делайте вы с этим что хотите.

Тьфу.

Так что осознал, да. Синглтоны не то что зло, а большая глупость, имеющая причиной отсутствие дизайна. Десяток синглтонов - и вот вам помойка. В добавок к которой возникает священное знание: чтобы сделать то-то и то-то, надо взять три таких-то синглтона (и передать их друг другу, во).

Date: 2010-02-11 02:28 pm (UTC)
From: [identity profile] sab123.livejournal.com
Объект будет существовать не в глобальном виде а как часть другого явно передаваемого объекта. То есть, да, синглтон, но внутри своего пространства имен.

Что такое контекст - читать тут http://members.verizon.net/~babkin/tpopp/05exit.txt , в конце страницы.

Date: 2010-02-11 03:30 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Гуд пойнт насчёт особой проблемы с синглтонами в многопоточных программах. Поди найди концы - и, соответственно, решение держать контекст гораздо более осмыслено.

Date: 2010-02-11 03:53 pm (UTC)
From: [identity profile] itman.livejournal.com
Это фабрика, ИМХО. Но внутри все равно должны быть синглтона. От них не убежать. Главное, это избавиться от вызов getInstance там, где от него можно избавиться.

Date: 2010-02-12 01:27 am (UTC)
From: [identity profile] sab123.livejournal.com
Нет-нет. Фабрика каждый раз создает новый объект, используя запомненные параметры для конструктора.

Контекст же типа мешка. Вначале кто-то создает всякие полезные объекты и кладет их в мешок. После чего ссылка на этот мешок передается везде где нужно, и когда этим прочим местам что-то нужно, они находят готовый объект в этом мешке. Таким образом глобальные переменные оказываются не совсем глобальными, а только в пределах мешка (т.е. контекста).

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

May 2025

S M T W T F S
    1 2 3
456 7 8 9 10
11 121314151617
181920 21 222324
25 262728 293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 30th, 2025 07:34 pm
Powered by Dreamwidth Studios