安定依存の原則(Stable Dependencies Principle: SDP)
1. 原則
依存の方向は、より安定した方向に向かわなければならない
- 変更されにくい安定したコンポーネントに、変更されやすい不安定なコンポーネントが依存するよう設計するべき
2. 根拠
システムの安定性向上
- 安定したコンポーネントへの依存により、変更による影響を最小限に抑えることができる
- 結果的にシステム全体の安定性が高まる
保守性の向上
- 安定したコンポーネントは変更されにくい
- 安定したコンポーネントに依存する不安定なコンポーネントの変更も容易になる
3. 指針
コンポーネントの安定性の評価
- コンポーネントの安定性を評価し、安定したコンポーネントと不安定なコンポーネントを区別する
依存関係の方向の調整
- 不安定なコンポーネントが安定したコンポーネントに依存するように、依存関係の方向を見極める
抽象化の利用
- 安定したコンポーネントを抽象化し、不安定なコンポーネントが抽象に依存するよう構成する
4. 注意事項
過度な抽象化
- 過度な抽象化はシステムの複雑性が増加し保守性が低下を招く
安定性の誤った評価
- コンポーネントの安定性を誤って評価すると、依存関係の方向が逆になり、システムの安定性を招く
他の原則とのバランス
- 他のコンポーネント設計原則(安定度抽象度等価の原則、非循環依存関係の原則など)と合わせて考慮する必要がある