Иногда возникает потребность в наследовании singleton, но поскольку в singleton вы используете статический ссылочный и статический метод, которые нельзя переопределить.Как наследовать singleton
Например (Java):
public class Singleton {
private static Singleton instance = null;
public static Singleton getInstance() {
if (instance == null)
instance = new Singleton();
return instance;
}
}
Если я унаследовал бы "Singleton" с "SingletonChild" класс я не смогу генерировать экземпляр с помощью вызова метода GetInstance(). Если я создам еще один метод getInstanceChild(), будет открыт базовый метод: getInstance().
Истинный синглтон будет, как правило, должны иметь 'private' конструктора. Вы не сможете расширить этот класс. –
Синглтоны также вызывают больше проблем, которые они решают, поэтому в большинстве случаев они считаются антитравами. См. [Этот пост] (http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons). Добавление наследования к нему делает его хуже ИМХО. –
Идея одного синглета заключается в том, что в вашей системе есть только один. Когда вы наследуете класс, ваш объект все еще является экземпляром родительского класса (полиморфно). Таким образом, второй экземпляр будет нарушать синглтонный контракт. Возможно, вам стоит подумать о том, что вам действительно нужно, вместо сингла. – RealSkeptic