Domanda

Stavo solo esaminando il codice sorgente di un progetto esistente che usa nhibernate e ho scoperto che ci sono interfacce create per ciascuna classe di entità. Per esempio Icustomer per Cliente classe. Mi stavo solo chiedendo quale possa essere il vantaggio di questo modello come Icustomer contiene principalmente le proprietà e pochissimi metodi.

È stato utile?

Soluzione

I non sarebbe dire. Interfacce comportamento separata dall'implementazione in modo che quest'ultimo possa essere scambiato senza influenzare i clienti dell'interfaccia.

Non vedo la necessità di interfacce, se gli oggetti del dominio non richiedono diverse implementazioni. Solo introdurli se sono necessarie implementazioni generazione di proxy dinamico o aspetti o mutevoli.

Altri suggerimenti

Non sono d'accordo con i commenti precedenti ... Anche se, in combinazione con modelli come Inversion of Control (IOC) e Dependency Injection fa isolare tali strati tra loro molto più facile. Ciò semplifica Unit Testing, Mocking, e può anche portare ad architetture più debolmente accoppiati. Questo può ancora essere acheived senza interfacce anche se è necessario per essere sicuri di non sigillare le vostre classi e membri make virtuali in modo da poter ancora prendere in giro poi, generare proxy intercettabili, ecc ... Infine, utilizzando le interfacce ti costringe a cadere ipotesi relative a qualsiasi una concreta attuazione e invece concentrarsi sul contratto rappresentato dalla definizione di interfaccia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top