見出し画像

安定依存の原則(SDP)を開発に活かす


はじめに

今回は安定依存の原則の解説をします。

SOLID のような原則系ですが、SOLID とは違いコンポーネントレベルの原則です。SOLID はクラス単位に適用される、もう少し狭い範囲の原則です。

安定依存の原則とは

安定度の高い方向に依存するという原則です。

まず安定したコンポーネントとは何でしょうか?

依存されているクラスが多ければ多いほど、依存しているクラスが少なければ少ないほど安定したコンポーネントです。

逆に、依存されているクラスが少なければ少ないほど、依存しているクラスが多ければ多いほど不安定なコンポーネントです。

この不安定さは数値で示すことが可能です。

不安定さ I = ファン・アウト ÷ ( ファン・イン + ファン・アウト)

ファン・アウトとは、依存しているクラスの数です。
ファン・インとは、依存されているクラスの数です。

I が 0 だったら最も安定している状態で、1 だったら最も不安定な状態です。

安定依存の原則をどう使うか

全てのコンポーネントを安定している状態にしなければいけないということではありません。

この原則を使って考えることは、変更しやすいコンポーネントから変更しにくいコンポーネントに依存するように設計することです。

たとえば、UI は変更しやすいコンポーネントでしょう。

一方で、最重要ビジネスルールは変更しにくいコンポーネントでしょう。

まとめ

  • 安定依存関係の原則とは、安定度の高い方向に依存するという原則

  • 安定依存関係の原則に違反しないように、変更しやすいコンポーネントから変更しにくいコンポーネントに依存するように設計しましょう

この記事が気に入ったらサポートをしてみませんか?