POURQUOI CE BLOG, POUR QUI ?


POURQUOI CE BLOG, POUR QUI ?
Ce Blog s'adresse à tous ceux qui sont passionnés par les sciences informatiques , Professionnels,Etudiants,Amateurs ...
Les sujets exposés dans la suite se rapporteront essentiellement sur l'analyse informatique,la programmation,le développement ainsi que à l'architecture IT.
QUI SUIS JE ?
Je suis Kangulungu Lubilanji, Consultant-Freelance sur les technologies .NET,C#,ASP.NET ... Contactez moi pour plus d'informations.
B.Introduction aux patterns de structuration
B.1. Présentation
L'objectif des patterns de structuration est de faciliter l'indépendance de l'interface d'un objet ou d'un ensemble d'objets vis-à-vis de son implantation. Dans le cas d'un ensemble d'objets, il s'agit aussi de rendre cette interface indépendante de la hiérarchie des classes et de la composition des objets.

En fournissant les interfaces, les patterns de structuration encapsulent la composition des objets, augmentant le niveau d'abstraction du système  l'image des patterns de créations qui encapsulent la création des objets. Les patterns de structurations mettent en avant les interfaces

L'encapsulation de la composition est réalisée non pas en structurant l'objet lui-même mais en transférant cette structuration à un second objet. Celui-ci est intimement lié au premier objet. Ce transfert de structuration signifie que le premier détient l'interface vis-à-vis des clients et gère la relation avec le second objet qui lui gère la composition et n'a aucune interface avec les clients externes.

Cette réalisation offre une autre propriété qui est la souplesse de la composition qui peut être modifiée dynamiquement. En effet, il est aisé de substituer un objet par un autre pourvu qu'il soit issu de la même classe ou qu'il respect la même interface. Les patterns Composite, Decorator et Bridge illustrent pleinement ce mécanisme.

B.2. Composition statique et dynamique
Nous prenons l'exemple des aspects d'implantation d'une classe. Nous nous plaçons dans un cadre où il est possible d'avoir plusieurs implantations possibles. La solution classique consiste à les différencier au niveau des sous-classes. C'est le cas de l'utilisation de l'héritage d'une interface dans plusieurs classes d'implantation comme l'illustre le diagramme des classes ci-dessous.

Cette solution consiste à réaliser une composition statique. En Effet, une fois que le choix de la classe d'implantation d'un objet est effectué, il n'est plus possible d'en changer.

Implantation d'un objet par héritage

Comme expliqué dans la précédente section, une autre solution est de séparer l'aspect d'implantation dans un autre objet comme l'illustre la figure ci-dessous. Les parties d'implantation sont gérées par une instance de la classe ImplantationConcreteA ou par une instance de la classe ImplantationConcreteB. Cette instance est référencée par l'attribut implantation. Elle peut être substituée facilement par une autre instance lors de l'exécution. Par conséquent, la composition est dynamique.

Implantation d'un objet par association


10.Le Pattern Adapter
Description: 
Le but du pattern Adapter est de convertir l'interface d'une classe existante en l'interface attendue par des clients également existants afin qu'ils puissent travailler ensemble. Il s'agit de conférer à une classe existante une nouvelle interface pour répondre aux besoins de clients.
Exemple:
Lorsqu'un système utilise une interface pour la construction d'objets de différents types. Des classes d'implantation ce cette interface permettent de créer des objets à travers l'interface.
Si un autre composant plus complexe veut être inséré dans le système cela va poser problème car le nommage et le nombre de fonction ne respecte pas la convention du système en place. 
But:
Adapter un composant pour qu'il soit utilisable dans l'architecture.
Solution: 
Le pattern Adapter propose une solution qui consiste à créer la classe ClassImplantationB implantant l'interface Interface et possédant une association avec ComposantX. L'implantation des méthodes de l'interface consiste à déléguer correctement les appels au composant ComposantX
Avantages:
- Un objet à la base simple peut faire appel  à des objets complexes pour rendre service à ses clients.
Diagramme de classes:
Le pattern Adapter en détail.


La structure générique du pattern Adapter


Participants:
Interface introduit la signature des méthodes de l'objet ;
Client interagit avec les objets répondant à Interface ;
- Adapteur (ClassImplantationB) implante les méthodes de interface en invoquant les méthodes de l'objet adapté ;
- Adapté (ComposantX) introduit l'objet dont l'interface doit être adaptée pour correspondre à Interface.
Collaborations:
Le client invoque la méthode demande de l'adaptateur qui, en conséquence, interagit avec l'objet adapté en appelant la méthode accomplit.
Ces collaborations sont illustrées à la figure suivante:

Domaines d'utilisation:
- Pour intégrer dans un système un objet dont l'interface ne correspond pas à l'interface requise au sein de ce système.
- Pour fournir des interfaces multiples à un objet lors de sa conception.

Aucun commentaire: