Can the Singleton be replaced by Factory?
- by lostiniceland
Hello Everyone
There are already quite some posts about the Singleton-Pattern around, but I would like to start another one on this topic since I would like to know if the Factory-Pattern would be the right approach to remove this "anti-pattern".
In the past I used the singleton quite a lot, also did my fellow collegues since it is so easy to use. For example, the Eclipse IDE or better its workbench-model makes heavy usage of singletons as well. It was due to some posts about E4 (the next big Eclipse version) that made me start to rethink the singleton.
The bottom line was that due to this singletons the dependecies in Eclipse 3.x are tightly coupled.
Lets assume I want to get rid of all singletons completely and instead use factories.
My thoughts were as follows:
hide complexity
less coupling
I have control over how many
instances are created (just store the
reference I a private field of the
factory)
mock the factory for testing (with Dependency Injection)
when it is behind an interface
In some cases the factories can make
more than one singleton obsolete
(depending on business
logic/component composition)
Does this make sense?
If not, please give good reasons for why you think so. An alternative solution is also appreciated.
Thanks
Marc