On peut simplifier le début en faisant en sorte que les void retournent this :
1 2 3 4 5 6 7
| public Cas setPasRestants(int pas) {
pasRestants = pas; return this;
}
public Cas setCaseSuivante(Cas caseSuivante) {
this.caseSuivante = caseSuivante; return this;
} |
Du coup le début de "main" devient :
1 2 3 4 5 6 7 8
| public static void main(String[] args) {
Cas C = new Cas("C");
Cas obj = new Cas ("A")
.setCaseSuivante(new Cas("B")
.setCaseSuivante(C))
.setPasRestants(2);
C.setCaseSuivante(obj);
System.out.println("Je souhaite avancer de : " + obj.getPasRestants()); |
Perso je préfère comme ça, mais bon, ce n'est pas du goût de tout le monde.
Après, au lieu de obj.nextStep(), la logique serait d'écrire plutôt
obj = obj.getCaseSuivante();
(ou même si on renonce à mettre tout en private). Du coup la méthode "nextStep" disparaît.
Je ne garantis pas qu'il n'y a pas d'erreur, mais bon c'est l'idée générale.
Partager