単一責任原則
モジュール
はひとつの
アクター
に対して
責務
を負うべきである.
クラス
の
コード
を変更する理由は1つであるべき
クラス
が担う役割は1つであるべき
できてない例
Employee
クラス
が
calculatePay()
,
reportHours()
,
save()
の3つの
メソッド
を持つとする.
calculatePay()
は
経理
が利用する.
reportHours()
は
人事
が利用する.
save()
は
データベース
管理が利用する.
これにより,
経理
のための修正が
人事
の利用に影響を及ぼすなどが危惧される.
対応策
別の
クラス
を用意して分ける.
データ
を
関数
から切り離す.
メソッド
を持たない
EmployeeData
クラス
で
データ
を管理するようにする.
3つの
クラス
を
インスタンス
化して管理しながら利用しなくてはならない課題がある.
Facade
を利用して対応する.