Skip to content
EntityQ392035· pop 16· linked from 19 articles

依存性逆転の原則

Sign in to save

Also known as DIP

principle that result in a specific form of decoupling of software modules that results in reversing of the dependency relationships established from high-level, policy-setting modules to low-level, dependency modules

Wikidata facts

Part of
SOLID
Show 2 more facts
short name
DIP
Sources (1)

via Wikidata · CC0

Article · 日本語

依存性逆転の原則または依存関係逆転の原則(dependency inversion principle)とは、オブジェクト指向設計の用語であり、ソフトウェアモジュールの疎結合を確立する特別な形態を表現したコンセプトである。SOLIDの五原則の一つとして知られる。 オブジェクト指向における従来の依存関係とは、上位モジュールから下位モジュールへの方向性であり、仕様定義を担う上位モジュールを、詳細実装を担う下位モジュールから独立させて、各下位モジュールを別個保存するというものだったが、それに対して依存性逆転原則は以下二点を提唱している。 1. * 上位モジュールはいかなるものも下位モジュールから持ち込んではならない。双方とも抽象(例としてインターフェース)に依存するべきである。"High-level modules should not import anything from low-level modules. Both should depend on abstractions (e.g., interfaces)." 2. * 抽象は詳細に依存してはならない。詳細(具象的な実装内容)が抽象に依存するべきである。"Abstractions should not depend on details. Details (concrete implementations) should depend on abstractions." この上位モジュールと下位モジュールの双方が抽象に依存しなければならないという内容は、それまでの人々のオブジェクト指向の常識を覆しているものだった。 この二点の背景にある考えとは、上位モジュールと下位モジュールの相互作用を設計する際は、その相互作用自体も抽象的に考える必要があるということである。上位モジュールの抽象化だけではなく、それを詳細化する下位モジュールへの見方も変えて、インターフェースの使い方も変えることを求めている。多くの場合、相互作用を抽象的に捉えることは、追加のコーディングパターンを増やすことなくコンポーネント間の結合を減らせることに繋がる。これはより軽量で小規模な実装依存性相互作用スキーマを実現する。 モジュール間で見出された抽象的相互作用スキーマが汎用的な意味をなしているならば、この設計原則は依存性逆転のコーディングパターンを適切な方向に導く。

Abstract from DBpedia / Wikipedia · CC BY-SA