# 単一責任原則
SRP (Single Responsibility Principle)
クラスを変更する理由は1つでなければならない
クラスを変更する理由が複数存在すると、ある機能に対する変更が別の機能に影響を及ぼしやすくなります。そのため、既存の機能に影響が起きていないことを広い範囲でテストしなければならなくなります。変更理由が複数ある場合はその数だけ別のクラスに切り出しましょう。
NOTE
クラスが変更される理由は1つだけにする
# 変更理由の数
変更理由の数はそのクラスの利用者×目的の数[1]です。たとえば、そのクラスが「開発者」向けの処理と「管理者」向けの処理を両方扱っているのであれば分離すべきです。値の「整形」と「保存」を両方扱っている場合も同様です。
NOTE
変更理由の数=利用者×目的の数
ユースケース図での「アクター」と「ユースケース」 ↩︎