Examen Final Flashcards
Intention du patron Composite
Traiter les objets individuels et les objets multiples, composés récursivement, de façon uniforme.
Applicabilité du patron composite
- Objets doivent être composés récursivement
- Objets dans la structure peuvent être traités uniformément
- Clients peuvent ignorer les différences entre les objets individuels et composés
Conséquences du patron composite
+ Uniformité : traite les composants uniformément sans égard à leur complexité
+ Extensibilité : Les nouvelles sous-classes de Component fonctionnent
- Coût : Peut nécessiter un grand nombre d’objet
Intention du Patron Proxy
Fournir un remplaçant ou une doublure pour un autre objet afin de contrôler l’accès à ce dernier.
Applicabilité du Patron Proxy
Ce patron est applicable dès que le besoin d’une référence plus versatile ou plus sophistiquée qu’un simple pointeur se fait sentir.
L’interface du Proxy doit correspondre à l’interface du sujet
Intention du Patron Decorator
Attacher dynamiquement des responsabilités additionnelles à un objet. Le patron Décorateur fournit une alternative flexible à la dérivation pour étendre la fonctionnalité d’une classe.
Applicabilité du Patron Decorator
Ce patron est utilisé pour ajouter des responsabilités à des objets individuels de façon dynamique et transparente, sans affecter d’autres objets.
Permet d’ajouter des responsabilités qui peuvent ensuite être retirées.
On utilise ce patron lorsqu’il n’est pas pratique de sous-classer. Parfois, un grand nombre d’extensions indépendantes sont possibles, et produiraient une explosion dans le nombre de sous-classes à supporter pour obtenir toutes les inaccessible, ce qui empêche de sous-classer.
Conséquences du Patron Decorator
+ Flexibilité : Plus flexible que l’héritage statique. Permet d’ajouter et de retirer des responsabilités en cours d’exécution en attachant ou détachant des décorateurs. Permet de choisir les responsabilités «à la carte».
+ Évite les classes racines complexes : Plutôt que d’essayer de supporter toutes les fonctionnalités dans la classe de base, les décorateurs permettent de définir des responsabilités cibl.es qui peuvent être ajoutées au besoin.
- Identité des objets : L’ajouter d’un décorateur à un objet modifie l’identité de l’objet. L’objet original et l’objet décoré sont deux objets différents, ce qui rend l’accès à l’objet original moins direct.
- Coût : Peut nécessiter un grand nombre d’objets.
Intention du Patron Visitor
Représenter une opération qui doit être appliquée sur les éléments d’une structure d’objets. Un Visitor permet de définir une nouvelle opération sans modification aux classes des objets sur lesquels l’opération va agir.
Applicabilité du Patron Visitor
Lorsqu’une structure d’objets contient plusieurs classes avec des interfaces différentes.
Lorsque plusieurs opérations distinctes et sans liens entre elles doivent agir sur des objets conservés dans une structure.
Lorsque les classes définissant la structure des objets changent rarement, mais que l’on veut fréquemment définir de nouvelles opérations sur cette structure.
Conséquences du Patron Visitor
+ Flexibilité : Les Visitors et la structure d’objets sont indépendants
+ Fonctionnalité localisée : Tout le code associé à une fonctionnalité se retrouve à un seul endroit bien identifié
- Coût de communication : Coût supplémentaire entre les Visitors et la structure
Intention du Patron Template Method
Définir le squelette d’un algorithme dans une opération, et laisser les sous-classes définir certaines étapes
Applicabilité du Patron Template Method
Pour implanter les aspects invariants d’un algorithme une seule fois et laisser les sous-classes définir les portions variables
Pour situer les comportements communs dans une classe afin d’augmenter la réutilisation de code.
Pour contrôler les extensions des sous-classes.
Conséquences du Patron Template Method
+ Inversion de contrôle : Mène à une inversion de contrôle (« Principe Hollywood : ne nous appelez pas, nous vous appellerons »)
+ Favorise la réutilisation du code
+ Surcharge : Permet d’imposer des règles de surcharge
Intention du Patron Singleton
S’assurer qu’il ne soit possible de créer qu’une seule instance d’une classe, et fournir un point d’accès global à cette instance.
Applicabilité du Patron Singleton
Lorsqu’il doit y avoir exactement une seule instance d’une classe. Et que cette instance soit accessible par un mécanisme bien identifié.
Lorsque la seule instance d’une classe doit être généralisable en sous-classant et que les clients doivent être en mesure d’utiliser l’instance généralisée sans modification à leur code.
Conséquences du Patron Singleton
+ Réduit la pollution : Réduit la pollution du namespace global
+ Permet de contrôler l’instanciation d’une classe : On peut limiter le nombre d’instance (1, 2, n)
+ Permet la généralisation par sous-classification : Comparativement à une classe équivalente dont toutes les fonctions seraient statiques
- Moins efficace : Implantation peut être légèrement moins efficaces qu’une variable globale.