TD 5 : De nouveaux design patterns

Dans ce cinquième TD nous allons voir de nouveaux design patterns qui sont très connus et donc très souvent utilisés. Voyons pourquoi.

Les objectifs de ce TD :

  • Vous présenter des patterns plus avancés
  • Vous permettre d'appliquer ces nouveaux éléments sur des exemples concrets
  • Vous permettre de vous rapprocher un peu plus du code tout en faisant une bonne analyse/conception


Conclusion


Avec ce cinquième et dernier TD vous avez vus de nouveaux design patterns bien plus complexes que ceux vus au TD 2. Néanmoins ils restent très courant et très utiles dans le milieu de la programmation. Vous avez ainsi vu qu'il est très souvent question de composition et d'héritage et que bien souvent on utilise des classes abstraites ou des interfaces pour solutionner nos problèmes alors n'oubliez pas de vous poser les bonnes questions pour appliquer le meilleur pattern !

Conseils / Les erreurs à ne pas commettre


Comme pour le TD précédent voici quelques conseils, remarques personnelles pour vous aider lors de l'application de ces principes :
  • Pour le pattern Observer/Observable pensez à bien identifier les classes qui jouent ces deux rôles. Il ne faut également pas oublier de faire implémenter les interfaces correspondantes à chaque classe et de définir les bonnes méthodes et les bons attributs comme par exemple la liste des observateurs dans l'entité observable.
  • Pour le pattern Singleton ne pas oublier l'attribut static et le constructeur privé. De même ne pas oublier de définir une méthode qui retourne l'unique instance.
  • Pour le pattern Composite il faut bien identifier les éléments "feuilles" et les élements "composite". Pour les éléments composite il ne faut pas oublier de redéfinir la méthode héritée tout en appelant la méthode de même nom dans les éléments feuilles qui constituent l'élément Composite.
  • Pour le pattern Adapter il ne faut pas oublier de définir une variable du type de la classe Adapter dans la classe Client. De plus il ne faut pas oublier de définir une variable du type de la classe dont on veut adapter la méthode dans la classe Adapter.
  • Pour le pattern Decorator il faut faire bien attention à définir une classe "intermédiare" qui va faire le lien entre l'objet sur lequel on souhaite ajouter des éléments et les éléments qu'on peut y ajouter. Il faut aussi faire attention à ce que cette classe "intermédiaire" soit abstraire ET qu'elle possède un attribut du type de la classe dont elle hérite.

Auto-évaluation


Chaque pattern possède un exemple d'entrainement que vous pouvez appliquer et comprendre. Pour conclure ce cinquième TD nous allons vous proposer un QCM dans lequel des questions sur tous les patterns présentés vous seront proposé.

-- Scripts -->