
On Fri, Sep 3, 2021 at 7:35 PM Steven D'Aprano <steve@pearwood.info> wrote:
On Fri, Sep 03, 2021 at 03:43:03PM +1000, Chris Angelico wrote:
Yes, although I'd love to have a good term for "there is only ever one object of this type AND VALUE", rather than "there is only one object of this type", so that True and False could be discussed the same way as singletons.
I believe that the "official" Design Pattern name for something that generalisations the Singleton pattern to two or more instances is the Multiton:
https://en.wikipedia.org/wiki/Multiton_pattern
but most people just use the term "singleton" in the sense that there is only a single True and a single False. Or sometimes "dupleton" or "doubleton".
Another term sometimes used is "flyweight", which is also used for interned strings and ints.
Fair enough. I'll try to remember that one. Useful term, although a little less than intuitive.
What would you call a class that has *no* instances? Obviously that would only be useful in a language where classes are first-class citizens. Why create a singleton instance if you can just use the class object itself?
Based on the way Java seems to use it, probably "namespace" would be the best term. Effectively, a class that never gets instantiated is a storehouse for static methods, which means it's basically what Python would do with a module full of top-level functions. ChrisA