Brook Preloader

Il design pattern Façade

UML
Il design pattern Façade

Il design pattern Façade è un pattern di progettazione che offre un’interfaccia semplificata per una struttura di classe complessa con l’obiettivo di nasconderne l’implementazione.

Ecco i punti che contraddistinguono questo pattern:

  1. Semplificazione dell’interfaccia: Il pattern Façade fornisce un’interfaccia più semplice e unificata per un insieme di classi o strutture di classi che interagiscono l’un l’altra, nascondendo la complessità del sottosistema sottostante.

  2. Riduzione della complessità: La façade semplifica l’utilizzo del sottosistema complesso, rende il codice più leggibile e mantenibile.

  3. Intermediario tra l’utente e il sottosistema: La façade funge da intermediario tra l’utente e il sottosistema che si vuole semplificare, indirizzando le richieste dell’utente al sottosistema appropriato e gestendo le interazioni tra le diverse classi o componenti del sottosistema.

  4. Single Responsibility Principle (SRP): Il pattern Façade segue il principio SRP, ovvero ogni classe o componente del sistema ha una sola responsabilità specifica, rendendo il sistema più modularizzato e facile da modificare o estendere.

  5. Miglioramento dell’estendibilità: Il pattern Façade rende il sistema più facile da estendere, poiché le modifiche al sottosistema possono essere fatte senza influire sulla façade o sui client che utilizzano la façade.

Il pattern Façade segue i principi SOLID:

  • Implementa naturalmente il Single Responsibility Principle, che stabilisce che ogni pattern deve avere una singola responsabilità specifica all’interno del sistema.

  • Fornisce una interfaccia semplice di comunicazione con il sistema per un insieme di classi e questa interfaccia ha una singola responsabilità specifica.

  • Migliora la possibilità di estendere le funzionalità del sistema seguendo l’Open/Closed Principle, secondo il quale una classe deve essere aperta a l’estensione ma non alla modifica.

  • Dato che è una interfaccia per un sottosistema, le modifiche possono essere introdotte senza influire sulla Façade o su tutte le classi che la implementano.