Design pattern name per thin wrapper per scopi di test unitari

0

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.

    
posta Caleb9 11.01.2017 - 10:42
fonte

2 risposte

-1

La creazione di un'interfaccia wrapper e l'implementazione predefinita di una chiamata in un tipo di wrapper è un esempio del schema di delega .

    
risposta data 11.01.2017 - 11:12
fonte
0

È un involucro, questo è tutto. Qui non è stato risolto alcun problema software, quindi non esiste un modello di progettazione qui. Il problema da risolvere è il problema burocratico che le classi testabili dovrebbero avere un'interfaccia e dovrebbero essere accessibili attraverso un'interfaccia, questa non ha un'interfaccia e non può essere modificata, quindi scrivi un wrapper. Nessun modello

    
risposta data 12.01.2017 - 07:45
fonte

Leggi altre domande sui tag