Type : | St (Structurel) |
Intention : | Fournit une interface unifiée, à l'ensemble des interfaces d'un sous-système. La Façade fournit une interface de plus haut niveau, qui rend le sous-système plus facile à utiliser. |
Applicabilité : | Utilisez la Façade lorsque : - Vous souhaitez disposer d'une interface simple pour un sous-système complexe. Les sous-systèmes deviennent souvent plus complexes au fur et à mesure de leur évolution. La plupart des modèles, lorsqu'ils sont employés, engendrent des classes plus nombreuses et plus petites. Ceci rend le sous-système plus réutilisable et plus facile à personnaliser, mais il devient aussi plus difficile à employer pour les classes qui n'ont pas besoin de personnalisation. Une façade propose une simple vue par défaut du sous-système, qui est suffisante pour la plupart des clients. Seuls les clients demandant plus de spécificité devront regarder derrière la façade. - Il y a beaucoup de relations de dépendance entre les clients et les classes d'implémentation d'une abstraction. On introduira une façade pour découpler le sous-système des clients et des autres sous-systèmes, favorisant ainsi l'indépendance et la portabilité du sous-système. - Vous cherchez à structurer en niveaux un sous-système. On utilisera la façade pour définir un point d'entrée à chaque niveau du sous-système. Si des sous-système sont interdépendants, vous pouvez simplifier les relations entre eux en les faisant communiquer l'un avec l'autre, uniquement à travers leurs façades. |