4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初めて依存性逆転の原則を学んだ際に分からなかった"逆転"の意味

Last updated at Posted at 2021-09-29

はじめに

本記事は、私が初めてSOLID原則を学んだ際に、理解しきれなかった依存性逆転の原則の"逆転"の意味を自分なりの理解でまとめています。

依存性逆転の原則とは

メンテナンスしやすいソフトウェア開発をするための原則であるSOLID原則の中の1つです。
SOLID原則についてはこちらの記事で分かりやすくまとめられています。
依存性逆転の原則は、上位モジュールは下位モジュールに依存すべきでなく、どちらも抽象に依存すべきという原則です。加えて、抽象は詳細に依存せずに詳細が抽象に依存すべきという原則も含まれています。
簡単に表現すると、上位モジュールは下位モジュールを利用するけど、下位モジュールとはインターフェース(抽象)を介してやり取りしなさいということです。

初めて依存性逆転の原則を学んだときに私が思ったこと

原則の意味はある程度分かりましたが、"逆転"の意味がいまいちわかりませんでした。
何がどう逆転しているんだ?という状態でした。その後、実際に原則を使ってみたり、いくつか書籍を読む中で何となく"逆転"の意味が見えてきました。

私が思う"逆転"の意味

処理の流れと依存の向きが逆転していることを表していると私は思いました。
例えば、コンピュータとコンピュータが利用する四則演算機を考えてみます。
四則演算機には加減乗除の4つの計算をするためのメソッドがあり、コンピュータがそれを直接呼びだしている場合、処理の流れと依存の向きは同じになります。

図1.png

ですが、コンピュータと同じ上位レベルで四則演算機用のインターフェースがあり、それを四則演算機が実現し、コンピュータはインターフェース経由で四則演算機を利用している場合には、処理は前と変わず上位から下位に流れますが、依存の向きは下位から上位の向きになります。つまり処理が上位から下位に流れているのに対して、依存は下位から上位に向かっており、処理の流れと依存の向きが逆転しているのです。

図1.png

まとめ

この記事では、依存性逆転の原則の"逆転"の意味を自分なりにまとめました。
あくまで自分の考えなので、参考程度にご覧いただければ嬉しいです。

4
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?