安定依存の原則
SDP: Stable Dependencies Principle
安定度の高い方向に依存すること
実は「安定したものに依存すべき」という原則ではない
安定度 (stability)
安定度=変更に必要な労力の高さ
安定している(stable)とは「簡単には動かせないこと(not easily moved)」
多くのコンポーネントに依存されるコンポーネント=変更しにくい=安定度が高い
すべてのコンポーネントに高い安定度を求める必要はない
変更への柔軟性が必要なコンポーネントは安定度を「低く保つ」ことが望ましい
代表例: UI
UIがビジネスロジックから依存されるとなぜ困るのか(PDS)の説明にもなる
そういうコンポーネントは依存「される側」になってはいけない
つまり、安定依存の原則とは
「依存されたコンポーネントは変更しづらくなる」という経験則に基づき、
変更しやすくしたいコンポーネントは依存「する側」にせよ という原則
言い換えれば
依存の方向によりコンポーネントの安定度をコントロールせよ、ということ