Semaine 11

Activité 1

Introduction aux patrons de conception pour IHM

Les patrons de conception sont des concepts de programmation qui sont devenus particulièrement populaires dans la foulée de la publication du livre Design Patterns: Elements of Reusable Object-Oriented Software par les auteurs Erich Gamm, Richard Helm, Ralph Johnson et John Vlissides (le « gang of four » comme on les appelle couramment dans la communauté informatique). Les patrons de conception sont donc à la fois des solutions génériques de définition de classes en réponse aux  problèmes couramment liés au  développement logiciel et des bonnes pratiques de développement. Les patrons de conception mettent particulièrement l’accent sur la modularité, la réduction du couplage entre les classes et la réutilisabilité. Les patrons de conception sont divisés en 3 groupes : les patrons de conception de construction, les patrons structuraux et les patrons comportementaux.

Les patrons de conception sont surtout utilisés dans le développement d’interfaces humain-machine, notamment afin de faciliter la mise en place de l’approche MVC. D’ailleurs, l’API Swing incorpore plusieurs patrons de conception dans sa structure et son fonctionnement. Ainsi, l’utilisation de classe implémentant des « Listeners » pour la gestion d’événements sur les composantes graphiques (p. ex., sur les boutons) correspond aux patrons de conception « Observer ». L’imbrication de composantes graphiques entre elles et l’appel en cascade des méthodes « update » (p. ex., lorsqu’il y a une modification de la taille d’un JFrame par l’utilisateur) correspondent au patron de conception « Composite ». Enfin, un autre exemple est celui du « AbstractTableModel » ou « AbstractListModel » qui implémente le patron de type « Template ».

Au cours des prochaines activités, nous vous présenterons sommairement cinq patrons de conception qui sont couramment utilisés pour le développement d’IHM, soit les patrons Observer, Composite, Command, Template et Factory. Comme ces termes anglo-saxons sont ceux utilisés par la  communauté informatique, nous les utiliserons durant le reste du cours.