noninstantiable
Noninstantiable describes a type or entity that cannot be instantiated to produce objects. In software design, a noninstantiable type is typically used as a namespace for related functions and constants, rather than as a blueprint for objects. The intent is to prevent object creation while still providing a cohesive grouping of behavior.
Implementation varies by language. In Java, a noninstantiable utility class is usually declared final and provides
Design considerations and alternatives: Use when grouping stateless helpers; avoid when you need polymorphism or stateful
Noninstantiable types also appear in type theory to denote types with no inhabitants, such as the empty