De par sa conception, dans le modèle Singleton
, le constructeur doit être marqué private et fournir une méthode de création qui réaccorde le membre statique privé de l'instance de même type. J'ai créé mes classes de singleton comme ceci seulement.Dois-je créer un constructeur protégé pour mes classes singleton?
public class SingletonPattern {// singleton class
private static SingletonPattern pattern = new SingletonPattern();
private SingletonPattern() {
}
public static SingletonPattern getInstance() {
return pattern;
}
}
Maintenant, je dois étendre une classe singleton pour ajouter de nouveaux comportements. Mais le constructeur privé ne laisse pas définir la classe enfant. Je pensais changer le constructeur par défaut en constructeur protégé pour la classe de base singleton.
Qu'est-ce qui peut poser problème, si je définis mes constructeurs comme protected
?
Vous recherchez des avis d'experts ....