LoginSignup
1
2

More than 3 years have passed since last update.

コンポーネントの原則をまとめる

Posted at

コンポーネントの凝集性

どのクラスをどのコンポーネントに含めればいいのか

再利用・リリース等価の原則

再利用の単位とリリースの単位は等価になる。
ソフトウェアコンポーネントを再利用したくても、リリースプロセスでそのコンポーネントを追跡していなかったり、リリース番号がついていなかったりすると、再利用できない。

閉鎖性共通の原則

同じ理由、同じタイミングで変更されるクラスをコンポーネントにまとめること。
変更の理由やタイミングが異なるクラスは、別のコンポーネントに分けること。

全再利用の原則

コンポーネントのユーザーに対して、実際には使わないものへの依存を強要してはいけない。

コンポーネントの結合

非循環依存関係の原則

コンポーネントの依存グラフに循環依存があってはいけない。

安全依存の原則

安定度の高い方向に依存すること

安定度の指標

  • ファン・イン(依存入力数、コンポーネント内のクラスに依存している外部のコンポーネントの数を表す)
  • ファン・アウト(依存出力数。コンポーネント内にある、外部のコンポーネントに依存しているクラスの数を表す)
  • I(不安定さ。I=ファン・アウト/(ファン・イン+ファン・アウト)。ゼロ以上1以下の値になる。)

安定度・抽象度等価の原則

コンポーネントの抽象度は、その安定度と同程度でなければならない。

抽象度の計算式

Nc:コンポーネント内のクラスの総数
Na:コンポーネント内の抽象クラスとインターフェイスの総数
A:抽象度。

A = Na÷Nc

参考資料

Clean Architecture 達人に学ぶソフトウェア

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2