Differenza tra il pattern dell'adattatore e il pattern Proxy?

31

Per capire, il modello di adattatore sta creando un oggetto wrapper per il nostro vero oggetto di interesse, semplicemente un altro livello di riferimento indiretto, che fornisce flessibilità. la flessibilità è che, se l'interfaccia dell'oggetto reale viene modificata, cambiamo l'interfaccia del wrapper che punta all'oggetto reale, lasciando invariata l'interfaccia esposta lato client.

Il pattern proxy è lo stesso, con la differenza che ogni wrapper proxy fornisce solo un sottoinsieme coerente della funzionalità dell'oggetto reale. Perché questo sarebbe utile, quando ci sforziamo di rendere "una classe per uno scopo" è oltre me.

L'ho ottenuto correttamente?

    
posta Vorac 13.06.2013 - 10:31
fonte

1 risposta

51

Non completamente.

Lo scopo principale del modello di adattatore è di cambiare l'interfaccia della classe / libreria A con le aspettative del client B. L'implementazione tipica è una classe wrapper o un insieme di classi. Lo scopo non è quello di facilitare le future modifiche all'interfaccia, ma le attuali incompatibilità con l'interfaccia.

Anche il pattern proxy utilizza le classi wrapper, ma per uno scopo diverso. Lo scopo del modello proxy è creare un supporto per una risorsa reale. I motivi per utilizzare un proxy possono essere

  • La risorsa reale risiede su un computer remoto (il proxy facilita l'interazione con la risorsa remota)
  • La risorsa reale è costosa da creare (il proxy garantisce che il costo non venga sostenuto a meno che non sia realmente necessario)

La cosa più importante è che un proxy fornisce una sostituzione drop-in per la risorsa reale per la quale è un sostituto, quindi deve fornire la stessa interfaccia.

    
risposta data 13.06.2013 - 11:11
fonte

Leggi altre domande sui tag