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