オブジェクト指向プログラミング > 単一責任の原則

単一責任の原則(SRP)

SRP: The Single Responsibility Principle
クラスを変更する理由は2つ以上存在してはならない。

雛形作ったは良いけど誰も追加してくれないんで適当に書いちゃいます。適当に修正削除してください。

唐突ですがプログラムとは一種の仕事です。
それを構成する「オブジェクト」は差し詰め労働者。仕事の一端を担う者として責任を持っています。責任の無い奴はとっととプロジェクトから出てってください。

責任とは何がしたいか。何をしなくてはならないのか。
そのポリシーを実現する為だけにメンバ関数・変数が存在すると言っても過言ではないでしょう。

つまり、普通にクラスを使ったプログラムを書いてりゃ必然的に一つ以上の責任を保持している事になります。だけど、「一人に複数の責任を押し付けたところでgdgdになるだけだってのー」と言っているのがこの原則です。

一つのクラスには一つの責任

それこそがより汎用的で単純なクラスを作る基本であり、BLOBアンチパターンを回避する留意点で、昨今少子化でオニャノコを見る機会が減ってきてなんか色々気が滅入るなぁ・・・

だけど必要以上に細かくしちゃうのにも注意しろよ。 何かのログを操作したいとき

  • ファイル開くクラス
  • ファイルに書きこむクラス
  • ファイル閉じるクラス なんてやってたら死ねるからな。