Creating a generic singleton
Imagine you want to make the singleton more flexible, reusable, and maintainable. The previous implementation works, but it’s hardcoded into Manager.cs
, which won’t help us if we want different classes to act like singletons. A better solution is to write a generic singleton that other classes can easily subclass.
We’re using a generic approach instead of subclassing the singleton class because we want the same design pattern implementations applied to different types. If we wanted the same functionality implemented in different ways across different singletons, subclass and traditional Object-oriented inheritance would be the way to go.
Figure 2.13 describes a generic singleton script that other manager classes can inherit from. Each subclassed manager has the same underlying Singleton structure, but each one can also add its own unique functionality and variables.
Figure 2.13: Multiple manager classes...