Implémentation d’UML avec Java et Design patterns
Implémentations Java
• Héritage: héritage Java (extends) public class Personne { private int age; public Personne() {age=0;} public int getAge() {return age;} }
public class Femme extends Personne { private int nbMaternites; public Femme() {nbMaternites=0;} public int getNbMaternites(return nbMaternites); }
Utilisation de l’objet marie, instance de femme: marie Femme = new Femme(); …. ageMarie = marie.getAge();
• Délégation: attribut de type classe public class Personne { private int age; public Personne() {age=0;} public int getAge() {return age;} }
public class Femme { private int nbMaternites; private Personne personne; public Femme() { nbMaternites=0; personne = new Personne(); } public int getNbMaternites(return nbMaternites); public int getAge(){return personne.getAge();} }
Comparaison
• Héritage: – Avantages: extensibilité, gestion automatique des liens – Inconvénients: rigidité des objets (des liens)
• Délégation: – Avantages: objets modifiables dynamiquement, implémentation de la généralisation dans un langage sans héritage – Inconvénients: codage plus lourd (gestion manuelle des liens)