Modèle de conception de pont avec un exemple

Dec 03 2022
Qu'est-ce que le modèle de conception de pont ? Selon les définitions du GOF, le Bridge Pattern "Découple une abstraction de son implémentation afin que les deux puissent varier indépendamment" Dans le Bridge Design Pattern, il y a deux couches. La première couche est la couche d'abstraction et la deuxième couche est la couche de mise en œuvre.

Qu'est-ce que le modèle de conception de pont ?

Selon les définitions du GOF, le Bridge Pattern "Découple une abstraction de son implémentation afin que les deux puissent varier indépendamment"

Dans le Bridge Design Pattern, il y a deux couches.

La première couche est la couche d'abstraction

et la deuxième couche est la couche de mise en œuvre.

Si j'apporte des modifications à la couche de mise en œuvre, cela n'affectera pas la couche d'abstraction.

De même, si j'apporte des modifications à la couche d'abstraction, cela n'affectera pas la couche de mise en œuvre.

Diagramme de classe du modèle de conception de pont :

Comme le montre le diagramme précédent, le modèle de conception de pont se compose de quatre composants. Ils sont les suivants :

Implémenteur :
Il s'agit d'une interface qui doit être implémentée par toutes les classes d'implémentation. Cette interface va agir comme un pont entre la classe d'abstraction et la classe d'implémentation.

ConcreteImplementationA / ConcreteImplementaionB :
Ce sont des classes qui implémentent l'Implementor. Ces classes contiennent l'implémentation concrète de toutes les opérations.

Abstraction :

Cela va être une classe abstraite. qui définit les méthodes que le code client doit appeler. cette classe abstraite contient une variable d'implémentation protégée qui contient une référence à l'objet qui effectue l'implémentation.

ConcreteAbstraction / RefinedAbstraction :
Ce sont des classes héritées de la classe abstraite Abstraction.

Comprendre le modèle de conception de pont avec un exemple :

Supposons que nous voulions (produire et assembler) de nouvelles voitures des deux types suivants (BMW ou Mercedes).

pour cela nous avons besoin d'un atelier pour chaque type afin de mettre en œuvre les deux tâches précédentes (produire et assembler).

Ainsi, le diagramme de classes de notre exemple ressemblera à ce qui suit :

Mise en œuvre :

Quand devons-nous utiliser Bridge Design Pattern dans les applications en temps réel ?

Nous devons utiliser le modèle de conception de pont dans les applications en temps réel, lorsque :
1- Nous voulons cacher les détails d'implémentation au client.
2- Nous voulons que la sélection ou la commutation de l'implémentation se fasse au moment de l'exécution plutôt qu'au moment de la conception.
3- Nous voulons que les classes d'abstraction et d'implémentation soient extensibles par les sous-classes.
4- Nous voulons éviter un couplage étroit entre une abstraction et son implémentation.
5- Les changements dans l'implémentation d'une abstraction ne doivent pas avoir d'impact sur les clients.

Lien du code complet sur Github :

StructureDesignPatterns/4-BridgeDP