Sommaire

Solution des exercices

1. Exercice 1.3.1 : Galaxie non modifiable

La version avec le patron Décorateur est présentée ici. La solution complète est dans le dossier « examples/chap05/stellaris01 » du projet Java exemple. Seuls les points saillants sont présentés ici. Patron:Décorateur

Pour chaque classe, une interface est définie avec les mêmes méthodes, puis une classe modifiable nommée MutableXXX, et une classe non modifiable nommée ImmutableXXX. En outre, une méthode supplémentaire toImmutable() est définie pour permettre de créer une version non modifiable à partir de tout objet.

Par exemple, l’interface Building est définie comme suit :

public interface Building { 
 
   public BuildingType getType(); 
 
   public int getLevel(); 
 
   public void setType(BuildingType type); 
 
   public void setLevel(int level); 
    
   public ImmutableBuilding toImmutable(); 
    
}

La version modifiable reprend le code original :

public class MutableBuilding implements Building { 
 
   private BuildingType type; 
 
   private int level; 
 
   public MutableBuilding(BuildingType type, int level) { 
       this.type = type; 
       this.level = level; 
   } 
 
  ...