依存性逆転パターンの一般化
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/30 03:24 UTC 版)
「依存性逆転の原則」の記事における「依存性逆転パターンの一般化」の解説
多くのプロジェクトにおいて依存性逆転の原則とパターンは一般化されるべき概念であると考えられる。これには少なくとも以下の2つの理由がある。 優れた考えの原則をコーディングパターンとみなすほうがよりシンプルである。ひとたび抽象クラスやインターフェースが実装されるとプログラマーは「自分は抽象化のための仕事をした」と言うかもしれない。 多くのユニットテストツールがモックを作成するためにインターフェースに依存しているため、クラス間のジェネリックなインターフェースを利用することは(モジュール間に限った話ではなく一般的にも)ルールになっている。 もし、インターフェースのみに依存するモック作成ツールを使用している場合、一般化された依存性逆転パターンが必要になることがあるが、これには大きな欠点がある。 クラスに対して単純にインターフェースを実装するだけでは不十分であり、一般的に結合を減らすことにはならない。相互作用に対しての潜在的な抽象化を考える事が唯一結合を減らす設計につながり得る。 ジェネリックなインターフェースをプロジェクト内の全ての箇所で実装してしまうと、理解してメンテナンスをするのが非常に難しくなる。ソースコードを読む人は全てのステップにおいて「このインターフェースの他の実装はなんだろうか」と自問することになり、そしてその答えはほとんど「モックだけ」ということになりかねない。 インタフェースの一般化はより "plumbing code" である事が要求され、一般的に依存性注入フレームワークに依存するファクトリーなどが特にそれにあたる。 インターフェースの一般化はプログラミング言語の利用も制限する。
※この「依存性逆転パターンの一般化」の解説は、「依存性逆転の原則」の解説の一部です。
「依存性逆転パターンの一般化」を含む「依存性逆転の原則」の記事については、「依存性逆転の原則」の概要を参照ください。
- 依存性逆転パターンの一般化のページへのリンク