Le commentaire que j'ai mis au dessus est clair: on suppose un prix du jour constant. Il n'y a donc aucun raison de pouvoir changer ce prix du jour (je n'ai pas mis de setter d'ailleurs).
Le commentaire que j'ai mis au dessus est clair: on suppose un prix du jour constant. Il n'y a donc aucun raison de pouvoir changer ce prix du jour (je n'ai pas mis de setter d'ailleurs).
Je pense que pour gérer ca, le plus simple est de déporter cette gestion dans une autre classe.
e.g
Et la Volaille deviendrait un truc comme ca
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 final class Cours { private static final Map<Class<? extends Volaille>, BigDecimal> ALL_COURS = new HashMap<Class<? extends Volaille>, BigDecimal>(); private Cours() { } public static BigDecimal duJour(Class<? extends Volaille> clazz) { return ALL_COURS.get(clazz); } public static void change(Class<? extends Volaille> clazz, BigDecimal newCours) { ALL_COURS.put(clazz, newCours); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public abstract class Volaille { public BigDecimal getPrixJour() { // si besoin d un prix par défaut if (Cours.duJour(this.getClass()) == null) { Cours.change(this.getClass(), getPrixParDefaut()); } // // return Cours.duJour(this.getClass()) == null ? BigDecimal.ZERO : Cours.duJour(this.getClass()); } public void setPrixJour(BigDecimal newCoursDuJour) { Cours.change(this.getClass(), newCoursDuJour); } // si besoin d un prix par défaut public abstract BigDecimal getPrixParDefaut(); }
C'est claire : )
Je vous remercie infiniment pour vos participations intéressantes, vos idées, votre débat, J’espère vous retrouver dans une autre occasion.
@+ ; )
Partager