Supponendo che sto usando una classe di una libreria di terze parti che non implementa un'interfaccia, ad esempio:
class ThirdPartyLibClass {
void DoThis() { ... }
void DoThat() { ... }
}
Voglio creare intorno a sé un involucro molto sottile, che riflette direttamente l'interfaccia di classe e che delega a ThirdPartyLibClass
. Lo scopo di questo è di stub ThirdPartyLibClass
nei miei test unitari. Esempio:
interface IThirdPartyLibClass {
void DoThis();
void DoThat();
}
class DefaultImplementation : IThirdPartyLibClass {
private ThirdPartyLibClass realImplementation = new ThirdPartyLibClass ();
void DoThis() {
realImplementation.DoThis();
}
void DoThat() {
realImplementation.DoThat();
}
}
C'è un nome per questo modello? Wrapper o Adapter sembrano differire leggermente e non intendo mai scambiare l'implementazione nel codice di produzione, quindi l'interfaccia è esattamente la stessa di ThirdPartyLibClass
. Inoltre, come chiamerei DefaultImplementation
per rendere l'uso del pattern chiaro al lettore?
Grazie in anticipo.