Termine per una classe con più interfacce

7

Dire che ho una classe che implementa più interfacce. Trasmetto la stessa istanza usando un'interfaccia diversa, a seconda di ciò a cui il consumatore è interessato.

Sto cercando di ricordare come si chiama. So che c'è un nome di fantasia per questo - ho pensato che fosse "partizionamento dell'interfaccia", ma non sto trovando alcun riscontro. Il nome ufficiale e forse un link a un sito che spiega cosa sarebbe utile.

Nel caso in cui non mi abbia spiegato abbastanza bene, ecco un esempio reale. Ho una classe, chiamiamola ContextManager , che è responsabile per fornire accesso alle impostazioni di configurazione, variabili di sessione, informazioni utente e altre utilità. Invece di passare l'oggetto come ContextManager , potrei passarlo come IConfigurationManager in un punto e come IUserManager in un altro. Ciò impedisce al client di accedere a cose a cui non dovrebbe interessare e mi consente di riutilizzare il codice all'interno della classe.

Voglio solo sapere come si chiama?

    
posta Travis Parks 28.03.2013 - 20:35
fonte

1 risposta

10

Stai descrivendo il modello di sfaccettatura , che viene utilizzato per limitare un'interfaccia per ottenere un'interfaccia più piccola che fornisce meno autorità. Ereditare più interfacce è un modo comune per implementare questo modello.

Questo è correlato, ma non identico, al principio di segregazione dell'interfaccia , che è il "I" in SOLID. Questo principio afferma che nessun cliente dovrebbe essere costretto a dipendere da metodi che non usa. Lo schema delle sfaccettature è un modo per adattare tale principio a una grande classe. Tuttavia, esistono altri modi più comuni per seguire il principio di segregazione dell'interfaccia, come la creazione di classi più piccole.

    
risposta data 28.03.2013 - 22:33
fonte

Leggi altre domande sui tag