依存関係逆転の法則
上位と下位のお互いがお互いのことを知っているのは最悪
これを病理学的結合という
上位は何も考えず、下位が合わせていくのが良い実装
ただ、上位から下位にアクセスしたいこともある
この矛盾の解決のためには、
もし上位(使われる側)が下位にアクセスしたければ、実体ではなくprotocolに合わせる
例:ドメイン層とデータベース管理層があったとする。(ドメインが上位)
ドメイン層のプログラムは、データベースのことを気にしたくない
なので、ドメイン層をプロトコル化する
データベースは、そのプロトコルに依存
https://gyazo.com/8196cae3305927a0ed9a040517411818