依存関係逆転の法則
#iOSアプリ設計パターン入門 p40あたり
モジュールの依存関係について
上位と下位のお互いがお互いのことを知っているのは最悪
- これを病理学的結合という
上位は何も考えず、下位が合わせていくのが良い実装
ただ、上位から下位にアクセスしたいこともある
この矛盾の解決のためには、
- 下位(使う側)が、protocol
protocol
Appleによると、 「何である」「何ができる」の二種類のprotocol 何である: Collection等 何ができる: Equatable, Comparable等 ...
- もし上位(使われる側)が下位にアクセスしたければ、実体ではなくprotocolに合わせる
- 下位(使う側)が、protocol
例:ドメイン層とデータベース管理層があったとする。(ドメインが上位)
- ドメイン層のプログラムは、データベースのことを気にしたくない
- なので、ドメイン層をプロトコル化する
- データベースは、そのプロトコルに依存