Il pattern Bridge

PROGETTAZIONE SOFTWARE



Il pattern Bridge è un pattern strutturale basato su oggetti. Lo scopo principale è rendere indipendente un'astrazione dalla sua implementazione in modo che le due possono essere modificate singolarmente senza influenzarsi l'un l'altra.
Evita l'approccio dell'ereditarietà che lega un'astrazione alla sua implementazione in modo permanente e rende difficile la modifica della singola astrazione o implementazione. Il pattern Bridge risolve questi problemi.

Struttura del pattern:

• ClasseAstratta: specifica l’interfaccia dell’astrazione e mantiene un riferimento ad un oggetto di tipo Interfaccia.
• ClasseConcreta: estende l'interfaccia definita da ClasseAstratta.
• Interfaccia: definisce l’interfaccia per le classi che implementano l’astrazione. Non deve corrispondere esattamente all’interfaccia di ClasseAstratta: Interfaccia fornisce le operazioni base, mentre ClasseAstratta definisce operazioni di più alto livello implementate sfruttando quelle di base.
• InterfacciaImplementata: definisce un’implementazione concreta dell’interfaccia Interfaccia .

Un’implementazione non è più legata in modo permanente a un’interfaccia. L’implementazione di un’astrazione può essere configurata durante l’esecuzione. Il disaccoppiamento tra ClasseAstratta ed Interfaccia elimina le dipendenza dall’implementazione a tempo di compilazione. Ciò aiuta ad ottenere una struttura stratificata del sistema.

Esempio codice Java:

Interfaccia:

interface Interfaccia {
 public void operation_1();
}

InterfacciaImplementata:
class InterfacciaImplementata implements Interfaccia {
 public void operation_1(){
  System.out.println("Hello World!");
 }
}

ClasseAstratta:
abstract class ClasseAstratta {
 protected Interfaccia interf;
 protected ClasseAstratta(Interfaccia interf){
  this.interf = interf;
 }
 public abstract void operation();
}

ClasseConcreta:
class ClasseConcreta extends ClasseAstratta {
 private int x,y;
 public ClasseConcreta(int x,int y, Interfaccia interf){
  super(interf);
  this.x = x;
  this.y = y;
 }
 public void operation(){
  interf.operation_1();
 }
}

Il pattern Bridge è, in genere, utilizzato all’inizio di un progetto per consentire ad astrazioni ed implementazioni di variare in modo indipendente.

Categorie Post


Sicurezza

Dalla crittografia all'anonimato, dallo scambio di messaggi agli antivirus. Vediamo come funziona la sicurezza digitale.

Internet

Tutto ciò che ci circonda è sempre più connesso ad internet, vediamo come e cosa c'è dietro la rete che ha cambiato il nostro mondo.

Programmazione

Raccolta di frammenti di codice, plugin, script, linee guida e tutto ciò che c'è da sapere sulla programmazione.

Progettazione Software

Come vengono progettati software complessi? Dietro c'è lavoro di team e tanta organizzazione. Cerchiamo di esaminarne i concetti principali.

Elettronica

Esaminia i componenti elettronici principali che ci permettono di utilizzare qualsiasi cosa di digitale, e non solo, al giorno d'oggi.

Mobile

Tutto ciò che riguarda il mondo dei cellulari e tablet con un occhio di riguardo al modding.