Re: singleton vs. utility (was Re: implementing zope.component 4.0)

Tres Seaver <[email protected]>
Newsgroups gmane.comp.web.zope.devel
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lennart Regebro wrote:
> On Tue, Dec 1, 2009 at 01:16, Gary Poster <[email protected]> wrote:
>> I don't love "singleton."  I think it is better than "utility."  I agree at least that it probably isn't better enough to introduce confusion.  I'd be more insistent on "singleton", or finding a better term than either of them, if this were a fresh API.
> 
> I wonder if the best isn't to make the documentation clearly say
> "Utilties are singleton components that can be looked up per
> interface".

+1 to improving the documentation.

- -1 to using the term "singleton".  The term is loaded up with things
that aren't relevant to what utilities do:  in particular, there is no
requirement / promise that the object registered as a utilitiy is an
instance of a class, much less that its class / module jumps through
hoops to guarantee that only one instance can exist[1].  The promise is
merely that the object returned from the lookup will provide the given
interface:  no more, no less.

I have often registered functions as utilities, for instance, where the
contract of the corresponding interface was just that it be callable
with a given signature.  I even recall registering a module as a
utility, although I can't find the example at the moment.

"Global objects" is a more accurate description of the things registered
as utilities from ZCML / imperative code:  even that term is inaccurate
once persistent objects get registered.


[1] See the description of the Singleton pattern in the
    mother-of-all-wikis: http://www.c2.com/cgi/wiki?SingletonPattern




Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          [email protected]
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAksVRvMACgkQ+gerLs4ltQ79/gCfbUH7gsgJT6yER0U/zBUxrT0E
qzQAoKYOe6OnLRXs4bveRXST8Ogkxwj6
=eh4i
-----END PGP SIGNATURE-----

_______________________________________________
Zope-Dev maillist  -  [email protected]
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.