インターフェイスに対するプログラミングは良い習慣であることに同意します。ほとんどの場合、この意味での Java の「インターフェース」は言語構成インターフェースを意味するため、インターフェースと実装クラスを作成し、ほとんどの場合、実装クラスの代わりにインターフェースを使用します。
これは、ドメイン モデルを作成するための良い方法でもあるのではないでしょうか。たとえば、ドメイン クラス Customer があり、各顧客が Orders のリストを持っている場合、通常はインターフェイス ICustomer および IOrder も記述します。また、Customer は Orders の代わりに IOrders のリストを持っていますか? それとも、ドメイン モデルでインターフェイスを使用するのは、それが実際にドメインによって駆動される場合のみです。たとえば、少なくとも 2 つの異なる種類の注文がある場合などです。言い換えれば、ドメイン モデルの技術的な必要性のためだけにインターフェースを使用しますか、それとも実際のドメインに関して本当に適切な場合にのみインターフェースを使用しますか?