Conception: héritage d'une classe abstraite
Bonjour,
Je me pose la question suivante, quelle est la meilleure manière de développer le cas suivant :
- une classe abstraite n'a pas de valeur pour un certain champs
- les enfants (qui sont plusieurs ) ont ce champs et il a une valeur
- ce champs est final
- le getChamps fait toujours la même chose
Feriez vous :
1)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| abstract class 1{
final int idType;
...
public getIdType(){
return idType;
}
protected 1(int idType){
this.idType = idType;
}
}
class 2 extends 1{
...
public 2(){
super(valeur_de_l'id_type);
}
} |
ou :
2)
Code:
1 2 3 4 5 6 7 8 9 10
| abstract class 1{
public abstract getIdType();
}
class 2 extends 1{
final int idType = 5;
...
public getIdType(){
return idType;
}
} |
Ou autre chose ?
Dans le 1) ce qui m'embete c'est qu'on perd en lisibilité et qu'on définit la variable final dans le constructeur, et dans le 2) c'est de devoir écrire n fois la même fonction getIdType(), bref aucune des deux solutions ne me satisfait.
Que feriez vous ?