Skip to content

DNET_DependencyInversionPrinciple

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

依存性反転原則

概要

上位スタックは、抽象化により、下位スタックを差し替え可能になる。

  • 共有された抽象化を通じて、高次と低次の抽象化レイヤー間の結合度を下げる。

  • DIによって実現される。IoCとは関係があるが、=ではない。

原則

  • 上位モジュールは下位モジュールに依存してはならない。
  • 上位モジュールも下位モジュールも、抽象に依存するべき。
  • 抽象は実装の詳細に依存してはならない。実装の詳細が抽象に依存するべき。

問題

  • フレームワーク差し替えを実現するための「共有された抽象化」の設計が困難。
  • また、「共有された抽象化」の設計を行うのは、ユーザ側でもプロダクト側でも無い。
    (第三者機関が「オープン標準」的な規格として、制定する必要がある。)

最小構成

  • 上位モジュール(DI
  • 下位モジュールのインターフェイス(共有された抽象化)
  • 下位モジュール

クリーン・アーキテクチャ

参考

マイクロソフト系技術情報 Wiki

移行メモ

  • 元 Wiki では見出しそのものが他ページへのリンクになっていた箇所 (「クリーン・アーキテクチャ」「DI」「IoC」)は、GitHub Wiki では 見出しからアンカが生成されるため、見出しをプレーン・テキストとし、 リンクは直下の本文に置いた。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替えた。 本文中の「DI」「IoC」は、参考節のマイクロソフト系技術情報 Wiki への リンクを指していたため、DI / IoC に直接張り替えた。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの DI / IoC に張り替えた。
  • なお、マイクロソフト系技術情報 Wiki 側の同名ページ 依存性反転原則 は本ページへの案内のみで、 実体は本ページ側にある。

Tags: 移行, 依存性反転原則, DIP, DI, IoC, 抽象化, クリーン・アーキテクチャ, オブジェクト指向

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally