final Flashcards
intention composite
traiter objets individuels et multiples composés récursivement, de facon uniforme
intention proxy
fournir remplacant, doublure a un obj pour acces a ce dernier
intention decorator
attacher dynamiquement responsabilités a un objet pour etendre les fonctionnalités de la classe
intention visitor
presenter operation qui doit etre appliquee aux obj d’une struct. d’objets sans modifications aux classes des obj.
intention template methode
definir squelette d’algo et laisser sous-classes definir certaines etapes
intention singleton
n’avoir qu’une seule instance d’une classe et fournir point d’acces global
intention mediator
definir obj qui encapsule ensemble d’objets interagissant pour couplage faible et laisser varier interactions de facon independante
intention observer
definit relation (1..*) pour notifier aux objets dependants lorsque l’objet change d’etat
intention abstract factory
interface permet de creer famille d’objets connexes ou dependants sans specifier leurs classes concretes
intention facade
interface qui unit groupe d’interfaces d’un sous-systeme pour simplifier utilisation
intention chain of responsability
decouple emetteur et recepteur et donne la responsabilité de traiter les requetes aux objets de la chaine
intention iterator
fournit methode d’acces sequetielle aux aggregats d’objets (vect, list) sans exposer structure interne
intention strategy
encapsuler algorithme dans classe et le rendre interchangeable pour faire varier algo selon client
intention state
permet de changer comportement d’un objet selon l’etat de celui-ci
intention command
encapsule requete dans objet pour supporter plusieurs types de requetes et creer des queues de requetes et permettre d’annuler celles-ci
avantage, inconvénient composite
a: Uniformité: traite les composants uniformément sans égard à leur complexité.
i: Coût: peut nécessiter un grand nombre d’objets
avantage, inconvénient decorator
a: 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.
i: Coût: peut nécessiter un grand nombre d’objets
avantage, inconvénient visitor
a: Flexibilité: les Visitors et la structure d’objets sont indépendants
i: Coût de communication supplémentaire entre les Visitors et la structure d’objets.
avantage, inconvénient template method
a: + favorise la réutilisation de code
i: il faut sous-classer pour spécialiser le comportement.
avantage, inconvénient singleton
a: Réduit la pollution du namespace global
i: Implantation peut être légèrement moins efficace qu’une variable globale
avantage, inconvénient mediator
a: Simplifie le protocole entre les objets
i: Le Mediator peut devenir complexe et monolithique
avantage, inconvénient observer
a: Modularité: Le sujet et les observateurs peuvent varier de façon indépendante.
i: Mises à jour inattendues: les Observers ne se connaissent pas
avantage, inconvénient abstract factory
a: Isole les classes concrètes
i: Le support de nouveaux types de produits est difficile.
avantage, inconvénient facade
a: Une classe façade fournit une vue simplifiée du soussystème suffisante pour la plupart des clients.
i:
avantage, inconvénient chain of responsability
a: Réduit le couplage.
i: La réception et le traitement de la requête n’est pas garantie.
avantage, inconvénient iterator
a: Variabilité : L’itérateur permet de supporter plusieurs variations dans le mode de traversée de l’agrégat.
i:
avantage, inconvénient strategy
a: Alternative au sous-classement. Permet d’obtenir des combinaisons d’algorithmes en limitant le sous-classement.
i: Augmente le nombre d’objets dans le système.
avantage, inconvénient state
a: Élimine les grands énoncés conditionnels.
i: augmente le nombres de classes et est moins compact.
avantage, inconvénient command
a: Découple l’objet qui invoque la requête de celui qui sait comment la satisfaire.
i:
avantages de l’architecture multi-niveaux
o La séparation de la logique d’application dans des composantes séparées qui peuvent être réutilisé dans d’autres systèmes,
o La possibilité de répartir les niveaux sur différents nœuds de calcul, et dans différents processus,
o L’assignation de développeurs à la construction de chaque niveau: parallélisassions des efforts et spécialisation des intervenants.