それでは「単一責務の原則」について解説をしていきたいと思います。
1.1 単一責務の原則
SRP: Single Responsibility Principle
クラスの責務は1つにする
この原則は,基本的に「クラスの責務は1個にしようね」という原則です。あと別の切り口で言うと,「変更理由を1つにしましょう」というふうによく言われています
クラスの変更理由は1つでないといけない
「クラスの変更理由は1つでないといけない」といった感じでよく表現されます。単一責務なので,「1個のクラスに,1個のことだけをさせようね」という非常にシンプルな原則なのですけど,今回は,ここを深掘りして解説をしていきたいと思います。
意外とここを深堀していくと,ドメイン駆動開発の思想にもつながっていきますし,オブジェクトをどうやって上手く分割していくか,というところのヒントだったり,答えだったりというのが,ここにあるのではないかという風に私は思います。
「.NETのエンタープライズアプリケーションアーキテクチャ」という本が黒い本があるのですけど,その中のこの「単一責務の原則」の中では,こういう出だしで書かれています。
「クラスが大きく成長し,多くのメソッドを持つようになったら,責務の数が多すぎる可能性がある,理想の責務の数はたった1つ」ということで,要するに責務の数を1個にしましょうねということなのですが,これからその辺りを詳しく見ていきましょう。