[Zope-dev] implementing zope.component 4.0

Joachim König him at online.de
Tue Dec 1 09:52:26 EST 2009


Martin Aspeli wrote:
> For the record, I normally use the singleton analogy to explain unnamed 
> global utilities. Perhaps that's bad, though I find it works pretty 
> well. It'd probably be more accurate to use the terms you did, an 
> "extension of the singleton principle", but as you say, it just adds 
> more complexity.
>
> To me, the Singleton pattern says, "each time you ask for this, you get 
> the same object". That's a little bit different from "this class can 
> only be instantiated once". I think the important part of the design 
> pattern is the shared instance (e.g. to conserve resources or to 
> implement some kind of shared counting/tracking), not the restrictions 
> on instantiation.
>
> I'm certainly -1 on using the term in the ZCA. I think changing our 
> nomenclature would be terrible for the same reasons I think changing (as 
> opposed to extending/improving) our API would be terrible. Utilities are 
> in one way a more specific concept (due to the lookup semantics) and in 
> another way a more generic concept (since named utilities can be used to 
> implement a registry of homogenous objects).
>   
To me the fact that an object "is" a singleton or a factory is 
orthogonal to the registry stuff.

Why can't utilities be factories too that simply return themselves when 
being called? Then being
a singleton or not would be in the responsibility of the registered 
object (class, factory, singleton)
and the ZCA would not need to know.

What am I missing (except bbb)?



More information about the Zope-Dev mailing list