2007-03-26 DI解説のなかで、インターフェイスのメリットの説明方法 意見 ■インターフェイスは単体では依存性を弱めない インターフェイスの効能として、よく「依存性を弱める」「疎結合にする」があげられますが、これはインターフェイスだけの効能ではありません。依存性を弱めるにはインターフェイスの仲介だけでは駄目です。 インターフェイスの仲介 生成のパターン(FactoryやDI)によるインスタンス生成の管理 の二つがそろって、具象クラスのnewが切り離されたとき、始めて依存性が弱まったと言えます。new演算子が呼び出し元クラスで使われているなら依存性は全く変わっていません。 ■インターフェイスのメリット インターフェイス単体のメリットとしては「クラス間の疎結合」をするではなく、 「クラス間のルールを設ける」ことの方が説明としては重要です。インターフェイスで定義されたルールによる仲介は、疎結合のための準備です。 生成プロセスを管理しない限り疎結合にはなりません。 まずは準備しているのだと説明しましょう。 「インターフェイスで定義されたルール」に基づいて実装することのメリットは、 コンパイラがルールのチェックをしてくれることです。他にも「ロール」の定義とか言い出すと深くなるので割愛