Re: StateFull vs Stateless Singleton
On Jul 5, 6:20 pm, =D6=F6 Tiib <oot...@hot.ee> wrote:
On 5 juuli, 19:57, James Kanze <james.ka...@gmail.com> wrote:
In the end, the only real arguments against singletons are that
1) they are often abused (but then, so are a lot of other
things), and 2) the usual syntax is excessively verbose (but
that's easy to fix---just use a lighter syntax).
Yes, exactly. Nothing suggests to use:
SingletonFactory::instance().giveCordStringTyer().tie( cordString );
Use good syntax:
tie( cordString );
You reduce coupling somewhat by grouping functions in classes.
(If nothing else, they don't invade global namespace.) Still,
something like:
CommandLine::parse(argc, argv);
is still a lot less verbose than:
CommandLine::instance().parse(argc, argv);
I've recently remodeled most of my singletons to use this
syntax. In some cases, there may be a more classical singleton
behind the scenes (in order to resolve order of initialization
issues, for example), but there's no point in burdening the
client code with such details.
I haven't worked out a way to do this with templates, and
I don't think I'm going to bother. While I don't have the
horror of singletons that some do, there's not something that
I use frequently enough to justify developing a complex template
for them.
--
James Kanze