Chapitre 12 : OOP + Patrons de conception Flashcards
Rappel-nous ce qui compose la programmation orientée objet
Classes et objets, héritages, polymorphisme, abstraction et encapsulation
Définit le polymorphisme
Une opération qui est définie dans plus d’une classe et qui prend différentes implémentations.
La méthode doit être correctement implémentée pour chaque sous-classe
Donne la définition de la dissimulation
Utilisation de l’encapsulation pour restreindre la perception depuis l’extérieur sur les mécanismes internes
Explique la dissimulation impl/info
Concevoir les modules de telle sorte que ce qui va probablement changer reste caché
- Bonne encapsulation et dissimulation facilite à: ✓Localiser les décisions de conception ✓Séparer l’information de sa représentation et facilite la réutilisation
Quelles sont les règles des getters/setters ?
Ne jamais permettre à d’autres classes d’accéder directement aux attributs de ma classe
Une fois rendu privé , un attribut ne peut plus être changer directement (sans garde fou)
Rendre les attributs accessibles via les méthodes get/set
obj.ligne Dangereux
obj.getLigne() Sécuritaire
Donne une définition de types paramétrique
Construction de classe où certains types (classes) qu’elle utilise à l’interne ne soit fournies que lors de l’exécution
Donne la définition de patron de conception
Schéma générique d’une solution à un problème récurrent dans un contexte donné.
Quels sont les objectifs d’un patron de conception
Accroître la qualité du code en visant un ou plusieurs des objectifs suivant : Flexibilité accrue, meilleure compréhension/performance, fiabilité accrue
Donne la définition de patron de création
Instanciation des classes, isoler la création du reste de l’application (singleton * fabrique)
Donne la définition de patron de structure
Organisation des classes, faciliter l’ajout des fonctionnalités (composite * adapteur)
Donne la définition de patron de comportement
Collaboration entre les objets, partager la responsabilité d’une tâche (patron de méthode * stratégie)
Quel est l’objectif de singleton ?
Garantir qu’une classe n’a qu’une seule instance et offre un point d’accès global
Quels sont les points faibles du singleton ?
- Problèmes en environnement multi-thread Sans précautions particulières (synchronisation), plusieurs instances peuvent être créées en parallèle.
- Difficulté de test
Peut rendre les tests unitaires plus compliqués, car les dépendances Singleton sont difficiles à simuler (mock). - Couplage fort
Les classes qui dépendent du Singleton sont fortement couplées à son instance, ce qui peut nuire à la flexibilité du code.
Donne la définition de méthode (patron de comportement)
Définit le squelette d’un algorithme dans une opération en reportant certaines étapes à des sous-classes
Quand la classe A envoie un message mà la classeB,Alui passe 2 paramètres. Mais pour B, m ne s’attend qu’à 1 paramètre. Modifier directement A et/ou B déclenchera des problèmes d’incompatibilité dans d’autres classes.
Comment résoudre ce problème d’incompatibilité d’interfaces ?
- Construire une classe C qui prend les 2 paramètres de A et n’en passe qu’un seul à B
- C’est un wrapper (emballage)
➢Cas particulier du patron Adaptateur