title: Do you define an interface for every public class in your domain model? Pros and Cons?
body: <p>Do you implement an interface for every public class in your domain model? Pros and Cons?</p>
  
  <p>Update: If Repositories interfaces and domain model classes are defined in separate assemblies, wouldn't there be circular dependency if we do not define interfaces for every domain class. </p>