[webkit-dev] Pattern for singleton classes instance getters

Michael Catanzaro mcatanzaro at igalia.com
Wed Jan 28 20:44:12 PST 2015


On Wed, Jan 28, 2015 at 8:11 PM, Maciej Stachowiak <mjs at apple.com> 
wrote:
> Yet another possibility is finding a better name than ‘shared’ 
> for the singleton pattern function, but I don’t have any better 
> ideas. Class::getSingleton() is more explicit but the extra verbosity 
> doesn’t seem helpful to me.

I recommend Class::instance(), which is what I've seen used almost 
exclusively outside of WebKit. It's what Scott Meyers used, and it's 
very similar to the Gang of Four's choice of Class::Instance() and the 
Java pattern Class.INSTANCE.

That said, Class::singleton() is very attractive too.

I've never seen Class::shared() used anywhere except WebKit. The first 
time I saw this I had no clue what it was until I looked up the 
implementation.

All of these can get quite annoying to type, especially when the name 
of the class is long. (Sometimes I will keep a reference to the 
instance in a local variable with a shorter name.) But I think they're 
easier to read than free functions, and we should optimize for reading 
code, not writing it. Not a big deal either way.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-dev/attachments/20150128/41c3eb55/attachment.html>


More information about the webkit-dev mailing list