Ceci est une ancienne révision du document !
Table des matières
Architecture
MVC : modèle-vue-contrôleur : séparation du code en 3 zones (fonctions métiers, IHM, contrôleur des demandes de modification de l'IHM vers les fonctions métier). Utilise le pattern Observateur.
Couches / Architecture n tiers : le code est décomposé en couches et chaque couche ne peut communiquer qu'avec celles du dessus ou du dessous.
Microkernel / Plug-In Architecture : architecture modulable.
Gestion des événements
Observateur : plusieurs observateurs espionnant les modifications d'un observé. Ici, les observateurs connaissent l'observé et l'observé connait les observateurs.
Publier-souscrire : les observateurs espionnent des événements et non plus des observés. Les observateurs et les observés ne se connaissent pas.
Reactor : proche de l'observateur, ici, Reactor ne transmet pas de message, il exécute directement la méthode.
Divers
Singleton : une seule instance d'une classe.
Bean : stockage d'information.
Adaptateur / Enveloppe / Wrapper : interface commune et homogène.
Composite : une instance d'une classe pouvant contenir une ou plusieurs autres instances d'une même classe ou interface commune. Idéale pour générer un arbre.
Fabrique abstraite : créer une instance mais ne recevoir que son interface.
Visiteur : séparer le traitement des données et leur stockage.
Proxy : passer par un objet intermédiaire avant d'atteindre le bon.
Requêteur : masquer la nécessité d'ouvrir et de fermer une connexion.
Stratégie : sélectionner pendant l'exécution la bonne méthode. Sur la base d'une interface commune, chaque classe fait la même chose mais avec un algorithme différent (télécharger un fichier depuis le protocole HTTPS ou FTP, choix de l'algorithme de compression, …).
Sérialisation ou Marshalling : (pattern ?)convertir des données en format binaire et inversement.
Invocateur : démarrer et arrêter un service.
Commande : exécuter une commande, éventuellement par l'intermédiaire d'un invocateur. On peut également implémenter un Undomanager (undo/redo).
Intercepteur : ajouter des fonctionnalités, avant et après l'appel d'une méthode et voir pourquoi pas appeler une autre méthode à la place.
Chaîne de responsabilité : liste chaînée d'intercepteurs.