Sommaire

Solutions des exercices

1. Exercice 2.4.1 : Fabriquer une galaxie

Une solution est proposée dans le dossier « examples/chap04/stellaris » des packages sources, ainsi que des tests unitaires dans le même dossier dans les packages de tests.

La non-dépendance aux types de planètes repose sur l’utilisation du patron Fabrique Abstraite pour créer celles-ci :

images/04RI036.png

La fabrique de planète suit le patron classique, sachant que le nom de la planète doit être fourni lors de sa construction. La méthode create() de la fabrique a donc deux arguments : le type et le nom de la planète.

public class PlanetFactory { 
 
   private Map<String, PlanetCreator> creators = new HashMap(); 
 
   public void registerCreator(String type, PlanetCreator creator) { 
       creators.put(type, creator); 
   } 
 
   public void unregisterCreator(String type) { 
       creators.remove(type); 
   } 
 
   public Planet create(String type,String name) { 
       return creators.get(type).create(name); 
   } 
}

La classe GalaxyLoader est définie pour charger une galaxie depuis une liste de String. Elle ne dépend pas des classes filles de Planet. Elle contient une fabrique par défaut, mais qui peut être modifiée lors de l’exécution.

public class GalaxyLoader ...