WCF - che separa i contratti di servizio e derivanti parziale?
-
20-09-2019 - |
Domanda
Così, ho seperated i miei contratti di servizio WCF in contratti distinti per il loro riutilizzo.
I utilizzare per avere IOneServiceContract che conteneva 3 funzioni: Function1, function2, function3.
Ho separato il contratto di servizio in due contratti di servizio distinti: IServiceContract1 e IServiceContract2. IServiceContract1 contiene Funzione1 e IServiceContract2 contiene Function2 e function3. Questo mi permetterà di riutilizzare la discreta IServiceContract1 e / o IServiceContract2 per costruire un nuovo contratto di servizio che rappresenta il contratto per il servizio pubblico.
Sapendo questo ... e si spera non ho incasinato la descrizione in modo che non si può seguire il resto ...
Ho due servizi IService1 e IService2.
IService1 implementa IServiceContract1 e IServiceContract2. Questo funziona perfetto come IService1 deve implementare tutte le funzioni:. Function1, function2, FUNCTION3
IService2 tuttavia non ha bisogno di implementare tutte le funzioni di IServiceContract2, solo Function1.
C'è un modo per IService2 per attuare parzialmente il contratto? So che suona ridicolo. È il modo corretto per gestire questa situazione per cercare di separare logicamente IServiceContract2 modo che IService2 deve solo implementare i pezzi di cui ha bisogno?
Grazie
Soluzione
Se si desidera implementare un contratto di servizio, è necessario implementare il tutto. Ecco perché l ' "io" nel SOLID principio di sviluppo è chiamato "Interface Segregazione Principio":. rendere le interfacce più piccolo possibile in modo che un implementor non deve implementare una serie di metodi che in realtà non è interessato a
Sembra che hai praticamente abbracciato questo principio - la domanda è: hai potuto dividere i vostri metodi in modo diverso? O sarebbe fatto male a dividerli in tre distinti contratti di servizio?