Chapitre 12 : OOP + Patrons de conception Flashcards

1
Q

Rappel-nous ce qui compose la programmation orientée objet

A

Classes et objets, héritages, polymorphisme, abstraction et encapsulation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Définit le polymorphisme

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Donne la définition de la dissimulation

A

Utilisation de l’encapsulation pour restreindre la perception depuis l’extérieur sur les mécanismes internes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Explique la dissimulation impl/info

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelles sont les règles des getters/setters ?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Donne une définition de types paramétrique

A

Construction de classe où certains types (classes) qu’elle utilise à l’interne ne soit fournies que lors de l’exécution

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Donne la définition de patron de conception

A

Schéma générique d’une solution à un problème récurrent dans un contexte donné.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quels sont les objectifs d’un patron de conception

A

Accroître la qualité du code en visant un ou plusieurs des objectifs suivant : Flexibilité accrue, meilleure compréhension/performance, fiabilité accrue

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Donne la définition de patron de création

A

Instanciation des classes, isoler la création du reste de l’application (singleton * fabrique)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Donne la définition de patron de structure

A

Organisation des classes, faciliter l’ajout des fonctionnalités (composite * adapteur)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Donne la définition de patron de comportement

A

Collaboration entre les objets, partager la responsabilité d’une tâche (patron de méthode * stratégie)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quel est l’objectif de singleton ?

A

Garantir qu’une classe n’a qu’une seule instance et offre un point d’accès global

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quels sont les points faibles du singleton ?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Donne la définition de méthode (patron de comportement)

A

Définit le squelette d’un algorithme dans une opération en reportant certaines étapes à des sous-classes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

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 ?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quel est l’objectif de l’adaptateur ?

A

Objectif: Convertir l’interface d’une classe en une autre interface attendue par le client afin de leur permettre de travailler de concert

17
Q

Quelles sont les forces des patrons de conceptions ?

A
  • Il est plus facile de comprendre un programme qui utilise des patrons de conception
  • Promeut la réutilisation en résolvant un problème de conception général
  • Fournit une documentation de la conception en spécifiant des abstractions
18
Q

Quelles sont les faiblesses des patrons de conception ?

A
  • Pas de manière systématique de déterminer où et quand utiliser un patron de conception
  • Programmes plus complexes emploient plusieurs patrons qui interagissent entre eux
  • Problème de gestion des dépendances entre patrons peut être très complexe et perdre leurs avantages
  • Le fait qu’on ait besoin de 23+ patrons de conception peut indiquer que notre langage/paradigme n’est pas assez puissant, ou trop générique