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