针对接口进行编程:您是否为所有域类编写接口?
我同意,针对接口进行编程是一种很好的做法。在大多数情况下,在Java中,“接口”在这个意义上意味着语言构造接口,因此您编写接口和实现类,并且大多数时候使用接口而不是实现类。
我想知道这是否也是编写域模型的好方法。因此,例如,如果您有一个域类客户,并且每个客户可能有一个订单列表,那么您通常还会编写接口ICustomer和IOrder吗?客户还会有一个IOrder列表而不是订单吗?或者,只有当它真正由域驱动时,您才会在域模型中使用接口,例如,您至少有两种不同类型的订单?换句话说,您是仅仅因为领域模型中的技术需求而使用接口,还是仅在它相对于实际领域真正合适时才使用接口?