私が理解YAGNI
しているように、必要な場合にのみインターフェイスを抽出する必要があると言っています。したがって、ポリモーフィズムが不要で、現在実装が 1 つしかない場合は、インターフェイスを使用する必要はありません。しかし、次のDIP
ように述べています。
A. 高レベル モジュールは低レベル モジュールに依存すべきではありません。どちらも抽象化に依存する必要があります。
B. 抽象化は詳細に依存すべきではありません。詳細は抽象化に依存する必要があります。
YAGNI
とオプション B. の間に不一致があるようですDIP
。また、適用したい場合はOCP
、依存関係の制御を反転し、抽象化を抽出して、その型を変更せずに型を拡張できるようにする必要があります。
また、一部のテクノロジでは、型クライアントを単体テストできるように抽象化を抽出する必要があります。しかし、たとえばJavaでは必要ありません。ですから、現在実装が 1 つしかない場合、抽象化を抽出する必要があるかどうかを知りたいですか?