
059
2
⹅
図2.3.1
SOLID原則
略称 原則(英語表記) 原則(日本語表記)
SRP Single Responsibility Principle 単一責任の原則
OCP Open-Closed Principle オープン・クローズドの原則
LSP Liskov Substitution Principle リスコフの置換原則
ISP Interface Segregation Principle インターフェース分離の原則
DIP Dependency Inversion Principle 依存関係逆転の原則
SRP:単一責任の原則
クラスを変更する理由は 1 つ以上存在してはならない。
※7
SRPは、クラスにはただ一つの明確な役割(責任)を持たせるべきと
いう原則です。複数の役割を担うとクラスは肥大化し、コードの見通し
が悪くなります。また、そのクラスに依存する他のクラスの数も増え、
依存関係が複雑化する可能性もあります。オブジェクト指向設計におい
ては単一の役割を担う小さなクラスに分割することが基本となります
(図2.3.2)。
⹅
図2.3.2
単一責任の原則(SRP)に則ったクラス分割
クライアント
クラス
役割A
役割B
クライアント
クライアント
クライアント
クラスB
クラスA
役割A
役割B
とてもシンプルな原則ですが、悩ましいのは役割をどの粒度で捉えれ
ばよいかという点です。極端な話、それぞれのクラスが一つのインスタ
ンス変数と一つのメソッドだけで構成されるまで分割すればよいかとい