Exercice n° 1: Première vision Objet des Expressions entières : Pattern Composite

Thèmes : plusieurs classes , classe abstraite , graphe d'héritage (UML) , Pattern Composite


Distinction de 2 genres d'expression :

 

Remarques :

  • Les seuls objets concrêts "manipulables" sont des expressions simples ou des expressions composées.
  • Donc, la classe Expression "générale ne doit pas être instanciable :  elle sera 'abstract'.
  • Des méthodes eval() et toString() sont implémentables uniquement par les classes ExprSimple et ExprComposee.
    Elles seront déclarées abstract et leurs corps ne sera pas défini.
  • e1 et e2 sont des expressions au sens général...

Ce schéma de construction d'une structure de données arborescente avec différents type de noeuds possibles est

le pattern COMPOSITE  (cf. GoF95)


Question  1 :  Donner une implantation de ces classes

Question 2 :  Donner le programme de test modifié.


/* une idée...


Quelques conclusions et remarques :

+

-

  • les variables incompatibles sont déclarées dans des classes différentes.
  • 'abstract' permet d'imposer aux feuilles l'implantation de certaines méthodes
  • l'écriture des méthodes est simplifiées : on implante seulement pour un cas précis
  • le nombre de classes i.e. le nombre de fichiers augmente
  • l'écriture des méthodes dans ExprComposee est encore complexe.