FANDOM


<hero description="testtest" imagename="" cropposition=""></hero>

Bienvenue sur le wiki consacré au design pattern "Facade"Modifier

Tout au long de cet article, nous allons vous décrire le design pattern Facade, son utilisation et sa structure. Bonne lecture.

FacadeModifier

Un logiciel est un outils mis à la disposition d’un client, et est composé d’une structure plus ou moins complexe. La façade permet de simplifier cette complexité en fournissant une interface simple du sous-système. Habituellement, la façade est réalisée en réduisant les fonctionnalités de ce dernier, mais en fournissant toutes les fonctions nécessaires à la plupart des utilisateurs.

L’utilisateur n’a pas besoin de connaître toutes les fonctionnalités, il utilise simplement celles qu’il souhait sans avoir à utiliser des sous fonctionnalités.

La façade encapsule la complexité des interactions entre les objets métier participant à un workflow.

Une façade peut être utilisée pour :

  • rendre une bibliothèque plus facile à utiliser, comprendre et tester;
  • rendre une bibliothèque plus lisible;
  • réduire les dépendances entre les clients de la bibliothèque et le fonctionnement interne de celle-ci, ainsi on gagne en flexibilité pour les évolutions futures du système;
  • assainir une API que l'on ne peut pas modifier si celle-ci est mal conçue, ou mieux découper ses fonctionnalités si celle-ci n'est pas assez claire.

Un adaptateur, qui est un autre design pattern que nous ne développerons pas ici, est utilisé lorsque l'on doit respecter une interface bien définie. La façade est utilisée pour simplifier l'utilisation de l'API.

1.Historique Modifier

Dans les années 70, un architecte cherche à résoudre des problèmes récurrent lors de la phase de conception en architecture. Pour cela, il créé 253 pattern qui couvrent tous les aspects de la construction (la charpente par exemple).

Dans les années 90, l'idée de Christopher Alexander est reprise et étendue au domaine de la conception de logiciels, mettant au point 23 design pattern dont Façade.

Architecture Modifier

La façade propose un ensemble de méthodes qui vont réaliser les appels nécessaires aux classes du sous-système pour offrir des fonctionnalités cohérentes. Elle propose une interface pour faciliter l'utilisation du sous-système en implémentant les traitements requis pour utiliser les classes de celui-ci.

La classe qui implémente le modèle Façade encapsule les appels aux différentes classes impliquées dans l'exécution d'un traitement cohérent. Elle fait donc office de point d'entrée pour utiliser le sous-système.

Ce modèle requiert plusieurs classes :

  • Le client qui va utiliser la façade
  • La façade
  • Les classes du sous-système utilisées par la façade

Avantages Modifier

Une interface facilitant la mise en oeuvre d'un ensemble de classes généralement regroupées dans un ou plusieurs sous-systèmes. Le motif Facade permet d'offrir un niveau d'abstraction entre l'ensemble de classes et celles qui souhaitent les utiliser en proposant une interface de plus haut niveau pour utiliser les classes du sous-système.

Exemples Modifier

Diagramme

Le lien ci-dessus est un diagramme de classe utilisant le design pattern Facade. On peut voir que la classe voiture est la classe principale du projet. Toutes les autres classes dépendent d’elle et sont exploités par cette dernière. Contrairement à la classe voiture, le retrait d’une classe secondaire ne met pas en danger le projet. Ceci est l’objectif du design pattern Facade qui a servi pour modeler ce diagramme de classe et le projet ci-dessous :  

Code exemple

 Ceci est la classe voiture. Son exécution est simple :

1) Déclaration des objets d’instance. (je crois que ça de dit comme ça)

2) Instanciation des classes secondaires

3) Méthode avancer : si le moteur est en marche, on appelle la méthode avancer() de la classe « déplacement ».

4) Méthode allumerClim : récupération de la température demandée par l’utilisateur et appel de la méthode « allumerClimatisation » en donnant la température en paramètre.

5) Méthode klaxonner() : tant que le bouton « Klaxon » est enclenché, on utilise la méthode « klaxonner() ».  

Références Modifier

http://design-patterns.fr/introduction-aux-design-patterns

Interférence d'un bloqueur de publicité détectée !


Wikia est un site gratuit qui compte sur les revenus de la publicité. L'expérience des lecteurs utilisant des bloqueurs de publicité est différente

Wikia n'est pas accessible si vous avez fait d'autres modifications. Supprimez les règles personnalisées de votre bloqueur de publicité, et la page se chargera comme prévu.

Sur le réseau FANDOM

Wiki au hasard