安定度の高い方向に依存すること。
- 変動を想定したコンポーネントは、変更しづらいコンポーネントから依存されてはいけない。
- 変更しやすい設計で作ったモジュールであっても、ほかのコンポーネントから依存されると、あっという間に変更しづらくなる。
- 安定依存の原則(SDP)を満たしていれば、手軽に変更できるように作ったモジュールが変更しづらいモジュールから依存されないことを保証できる。
- コンポーネントの
I(不安定さ) を依存するコンポーネントのIよりも大きくするべき。 - コンポーネントの依存性の方向を順番にたどると、
Iの値は減少していくべき。 - コンポーネント構造を設計するときは、安定度の高いコンポーネントもあれば、安定度の低いコンポーネントもあるようにしておきたい。
安定度の指標
コンポーネントの安定度を測定する方法の一つとして、コンポーネントに依存しているコンポーネントの数や、そのコンポーネントが依存しているコンポーネントの数を調べる。
- ファン・イン
- 依存入力数。コンポーネント内のクラスに依存している外部のコンポーネントの数。
- ファン・アウト
- 依存出力数。コンポーネント内にある、外部のコンポーネントに依存しているクラスの数。
- I(Instability)
- 不安定さ。
I = ファン・アウト ÷ (ファン・イン + ファン・アウト)I = 0が最も安定しているコンポーネントI = 1が最も不安定なコンポーネント
ファン・インとファン・アウトを算出するには、対象コンポーネントに含まれるクラスと依存関係にある外部コンポーネントのクラスの数を調べる。
