オブジェクト指向の原則 単一責務の原則 #01単一責務の原則とは

当サイトではアフィリエイト広告を利用しています。

単一責務の原則

それでは「単一責務の原則」について解説をしていきたいと思います。

1.1    単一責務の原則

SRP: Single Responsibility Principle 

クラスの責務は1つにする

この原則は,基本的に「クラスの責務は1個にしようね」という原則です。あと別の切り口で言うと,「変更理由を1つにしましょう」というふうによく言われています

クラスの変更理由は1つでないといけない

「クラスの変更理由は1つでないといけない」といった感じでよく表現されます。単一責務なので,「1個のクラスに,1個のことだけをさせようね」という非常にシンプルな原則なのですけど,今回は,ここを深掘りして解説をしていきたいと思います。

意外とここを深堀していくと,ドメイン駆動開発の思想にもつながっていきますし,オブジェクトをどうやって上手く分割していくか,というところのヒントだったり,答えだったりというのが,ここにあるのではないかという風に私は思います。

「.NETのエンタープライズアプリケーションアーキテクチャ」という本が黒い本があるのですけど,その中のこの「単一責務の原則」の中では,こういう出だしで書かれています。

「クラスが大きく成長し,多くのメソッドを持つようになったら,責務の数が多すぎる可能性がある,理想の責務の数はたった1つ」ということで,要するに責務の数を1個にしましょうねということなのですが,これからその辺りを詳しく見ていきましょう。