[webkit-dev] Pattern for singleton classes instance getters

Maciej Stachowiak mjs at apple.com
Wed Jan 28 18:11:10 PST 2015


> On Jan 28, 2015, at 4:28 PM, Darin Adler <darin at apple.com> wrote:
> 
> I like the economy of the smaller non-member function name; it seems overly wordy to be constantly stating the class name as well as the nearly meaningless word “shared”. I think the word “shared” is what I like least about the member function approach.
> 
> It had always thought that we used static member functions for this to replicate the pattern from Objective-C, and it seems more idiomatic modern C++ to use a free function for this kind of thing.
> 
> Maciej’s point about Class::create() might be enough to convince me to change my view, though; it’s hard to see any reason the same logic wouldn’t apply in that case.

I would also find it acceptable to use free functions for all these cases. Mostly it bugs me for them to be different - the singleton case is rarer, so it seems odd to treat it as especially conciseness-worthy.

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.

Regards,
Maciej



More information about the webkit-dev mailing list