Modèles de proxy, de décorateur, d’adaptateur et de pont

Modèles de proxy, de décorateur, d'adaptateur et de pont

 

1. introduction

Dans cet article, nous allons nous concentrer sur les modèles de conception structurelle en Java et discuter de ce qu’ils sont et de certaines différences fondamentales entre certains d’entre eux.

2. Modèles de conception structurelle

Selon le Gang Of Four (GoF), les modèles de conception peuvent être classés en trois types:

  1. Création

  2. De construction

  3. Comportementale

En bref, les modèles de structure traitent de la composition des classes et des objets. Ils fournissent différentes manières d'utiliser la composition d'objet et l'héritage pour créer une abstraction.

3. Modèle de proxy

Avec ce modèle,we create an intermediary that acts as an interface to another resource, par exemple, un fichier, une connexion. Cet accès secondaire fournit un substitut au composant réel et le protège de la complexité sous-jacente.

Pour un exemple détaillé du modèle, jetez un œil à l'article dédié:The Proxy Pattern in Java.

Points clés de différenciation:

  • Le proxy fournit la même interface que l'objet auquel il contient la référence, et il ne modifie en aucune manière les données; c'est en contraste avec les modèles Adapter et Decorator qui modifient et décorent respectivement les fonctionnalités des instances préexistantes

  • Le proxy a généralement les informations sur le sujet réel au moment de la compilation, tandis que le décorateur et l'adaptateur sont injectés au moment de l'exécution, ne connaissant que l'interface de l'objet réel

4. Motif Décorateur

This pattern is useful for enhancing the behavior of an object. Pour un aperçu détaillé, jetez un œil au didacticiel ciblé ici:Decorator Pattern in Java

Points clés de différenciation:

  • Bien que les modèles Proxy et Decorator aient des structures similaires, leur intention diffère; alors que l’objectif principal de Proxy est de faciliter la facilité d’utilisation ou l’accès contrôlé, un décorateur associe des responsabilités supplémentaires

  • Les modèles de proxy et d'adaptateur contiennent une référence à l'objet d'origine

  • Tous les décorateurs de ce modèle peuvent être utilisés de manière récursive, un nombre infini de fois, ce qui n'est pas possible avec d'autres modèles

5. Modèle d'adaptateur

The Adapter pattern is used for connecting two incompatible interfaces that otherwise cannot be connected directly. Un adaptateur encapsule une classe existante avec une nouvelle interface afin qu'elle devienne compatible avec l'interface nécessaire.

Pour une description détaillée et l'implémentation, jetez un œil à l'article dédié:Adapter Pattern in Java

Les principales différences entre les modèles d'adaptateur et de proxy sont:

  • Alors que le proxy fournit la même interface, Adapter fournit une autre interface compatible avec ses clients.

  • Le modèle d'adaptateur est utilisé après la conception des composants de l'application afin que nous puissions les utiliser sans modifier le code source. Cela contraste avec le motif Bridge utilisé avant la conception des composants.

6. Modèle de pont

The Bridge pattern is used to decouple an abstraction from its implementation afin que les deux puissent varier indépendamment.

Cela signifie créer une interface de pont qui utilise les principes de la POO pour séparer les responsabilités en différentes classes abstraites.

Pour une description détaillée et l'implémentation, jetez un œil à l'article dédié:Bridge Pattern in Java

Key Points of Differentiation:

  • Un modèle de pont ne peut être implémenté qu'avant la conception de l'application.

  • Permet à une abstraction et à une implémentation de changer de manière indépendante, tandis qu'un motif Adapter permet aux classes incompatibles de fonctionner ensemble

7. Conclusion

Dans cet article, nous nous sommes concentrés sur le modèle de conception structurelle et les différences entre certains de ses types.

Comme toujours, l'implémentation complète de ce tutoriel peut être trouvéeover on Github.