← ノート一覧

安定度・抽象度等価の原則(SAP: Stable Abstractions Principle)

Clean Architecture 達人に学ぶソフトウェアの構造と設計

Clean Architecture 達人に学ぶソフトウェアの構造と設計

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

  • 安定度と抽象度の関係についての原則。
  • 安定度の高いコンポーネントは抽象度も高くあるべきで、安定度の高さが拡張の妨げになってはいけない。
  • 安定度の低いコンポーネントは具体的なものであるべき。
  • 安定度が低いことによって、その内部の具体的なコードを変更しやすくなる。
  • コンポーネントの安定度を高くしようと思えば、拡張できるようにインターフェイスと抽象クラスで構成するべき。
  • 安定度が高くしようと思えば、拡張できるようにインターフェイスと抽象クラスで構成するべき。
  • 安定度・抽象度等価の原則(SAP) + 安定依存の原則(SDP) = コンポーネント版の依存かんけい逆転の原則(DIP)に相当。
  • 安定度と抽象度は連動するもの。

抽象度の測定

コンポーネントの抽象度を表す指標 A

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

Amazon アソシエイトについて

この記事には Amazon アソシエイトのリンクが含まれています。Amazonのアソシエイトとして、SuzumiyaAoba は適格販売により収入を得ています。