Java Design Pattern: Adapter Pattern

by Alessio Mungelli Date: 21-09-2019


Andiamo oggi a parlare di un pattern strutturale che ci può tornare molto utile quando abbiamo la necessità di riutilizzare un determinato componente software apparentemente incompatibile con le classi esistenti. Vediamo meglio.

Perchè utilizzare l'Adapter Pattern?

Possiamo immaginare questo pattern un po' come l'adattatore della presa di corrente. Per quanto possa sembrare assurdo come paragone, cerchiamo di capire meglio cosa significhi.

Lo scopo fondamentale del pattern è quello di convertire l'interfaccia di una classe in un'altra. Questo perchè spesso e volentieri, non è possibile modificare i toolkit. Proprio per questo è necessario definire una classe adapter  che adatti le interfacce.

Partecipanti

  1. Client: si tratta dell'entità che effettua l’invocazione all’operazione di interesse
  2. Target: definisce l’interfaccia specifica del dominio applicativo utilizzata dal Client
  3. Adaptee: definisce l’interfaccia di un diverso dominio applicativo da dover adattare per l’invocazione da parte del Client
  4. Adapter: definisce l’interfaccia compatibile con il Target che maschera l’invocazione dell’Adaptee

In questo contesto diventa molto importante il concetto di dominio applicativo. Con questa espressione si intende il contesto in cui una applicazione software opera, soprattutto con riferimento alla natura e al significato delle informazioni che devono essere manipolate.

UML

L'Adapter Pattern può essere realizzato o per ereditarietà o per aggregazione. Vediamo due possibili UML che schematizzano la situazione.

  • Ereditarietà
    Ereditarietà UML



     
  • Aggregazione
    Aggregazione UML

Esempi

Andiamo ad analizzare un esempio significativo presentato dagli amici di dellabate.wordpress.com

 
by Alessio Mungelli Date: 21-09-2019 visite : 116