Est-il possible d’empêcher l’utilisation du constructeur par défaut?
Tout ce que je peux penser à jeter une exception, mais je voudrais quelque chose qui provoque une erreur de compilation.
Je pense que cela devrait couvrir toutes les bases …
Rendez-le privé
Alors,
class SomeClass { private SomeClass() { } public SomeClass(int SomeParam) { } }
Vous pouvez simplement le rendre privé:
private MyClass() { }
Alternativement (si vous ne le saviez pas déjà) si vous déclarez simplement un constructeur avec des parameters, celui par défaut n’est pas ajouté par le compilateur, par exemple
private MyClass(ssortingng myParameter) { //Can't call new MyClass() anymore }
Une chose à mentionner que d’autres n’ont pas. Le constructeur par défaut devrait toujours être capable de configurer les bits d’implémentation par défaut, pour éviter la réutilisation. Ce n’est pas un problème s’il est privé, car vous pouvez toujours vous connecter à un constructeur privé. Vous venez de le rendre indisponible pour des sources extérieures.
private MyClass() { } public MyClass(ssortingng something) : this() { }
Cela résout le problème. Notez, cependant, que protégé peut en fait être une implémentation préférée si la classe n’est pas scellée.
En plus des autres réponses, vous pouvez lire le texte suivant, pour plus d’informations sur le modèle Singleton et quelques exemples. Le modèle Singleton repose sur le fait que le constructeur est privé.