Forcer les sous-classes à définir une variable dans Java
Je suis en train d'élaborer dans Android est relativement simple de la situation, je suis en train de mettre en œuvre de la meilleure façon possible.
Simplement, j'ai une classe qui définit tous les paramètres de base pour un écran. De là, chaque écran de l'application est une sous-classe de cette. J'ai besoin de chaque écran (c'est à dire la sous-classe) pour définir la valeur d'une variable dans sa mise en œuvre (à savoir, chaque écran doit définir ce niveau, il est dans une arborescence de navigation).
Aussi, idéalement, cette variable doit être final
lorsqu'il est défini dans la sous-classes (je me rends compte que ce n'est probablement pas possible).
Quelle est la meilleure façon d'aller à ce sujet? Est-il un moyen pour appliquer correctement ce type de comportement en Java?
source d'informationauteur B T
Vous devez vous connecter pour publier un commentaire.
@pst commentaire aboutir à cette solution.
De déclarer un
abstract
fonction pour définir ou de retour de la variable, vous pouvez forcer une sous-classe de la mettre en œuvre correctement.Suivant, la fonction doit être appelée par chaque sous-classe de l'extérieur de la classe. Cela implique qu'il doit être fait quelque part à l'extérieur de la classe. Cela peut être fait dans le constructeur sans argument de l'extérieur de la classe sans avoir à se soucier des sous-classes d'appel
super
:Sur cette base, cette solution permettra de tenir en place et correctement force la variable à définir tant que:
Le code:
Superclasse:
Sous-classe:
Plutôt que de faire valoir ce que de classes enfant initialiser les champs, vous pouvez suivre une stratégie de composition en ayant votre classe constructeur de prendre un paramètre de mise en œuvre d'une interface qui fournit les champs que vous souhaitez avoir initialisé.