mike-neckのブログ

Java or Groovy or Swift or Golang

クリーンアーキテクチャーの読書メモ(6)

第三部 設計の原則

  • クリーンなコードを書くための原則「SOLID 原則」
    • 変更に強い中間レベルのソフトウェア構造
    • 理解しやすい中間レベルのソフトウェア構造
    • コンポーネントの基盤として、多くのソフトウェアシステムで利用できる中間レベルのソフトウェア構造
  • 単一責任の原則(Single Responsibility Principle)
  • オープン・クローズドの原則(Open Closed Principle)
  • リスコフの置換原則(Liskov Substitution Principle)
  • インターフェース分離の原則(Interface Segregation Principle)
  • 依存関係逆転の原則(Dependency Inversion Principle)

§7 SRP: 単一責任の原則

  • よくある間違い
    • モジュールはたった一つのことだけを行うべき
  • 正しい
    • モジュールを変更する理由はたった一つだけである
    • (言い換え)モジュールはたった一人のユーザーやステークホルダーに対して責務を追うべきである
    • (言い換え)モジュールはたったひとつのアクター(ユーザーなど変更を望む人の集団)に対して責務を追うべきである
  • 例 - 単一責任の原則に違反している例と解決策の例
    • (図1)単一責任の原則に違反しているクラス Employee (3つのメソッドがそれぞれ別々のアクターに対する責務を負っている)
    • 解決策1 : 僕は好きではない
    • 解決策2
      • メソッドオブジェクトを作って、処理を移譲する(図3)

f:id:mike_neck:20190317233338p:plain
(図1)SRP に違反

f:id:mike_neck:20190317235302p:plain
図2

f:id:mike_neck:20190317235409p:plain
図3