読者です 読者をやめる 読者になる 読者になる

The Common Closure Principle (CCP) 共通閉鎖原則

Design

共通閉鎖原則とは

パッケージ内のクラスは、同種の変更理由に対して共に閉じていなければならない。パッケージに影響を及ぼす変更は、パッケージ内の全てのクラスに影響を及ぼすことと同意である。

The classes in a package should be closed together against the same kinds of changes. a change that affects a package affects all the classes in that package.


同じ理由で変更されるクラスは、同じパッケージに属するべきである。

Classes that change together, belong together.[by Martin]

内容

クラスをどのようなパッケージとしてまとめるか? という判定基準をメンテナンス性の観点から表したものです。ソフトウェアを修正しなければならない場合、その修正があるパッケージの中で閉じているにこしたことはありません。そのため将来起こるであろう変更を想定した場合、同時に修正することになるクラスは同じパッケージとして管理するべきです。

この原則は、クラスに関する設計原則である「単一責任の原則」をパッケージに当てはめたものになります。クラスの変更理由が1つでなければいけないように、パッケージの変更理由も複数存在してはならないということになります。変更理由が複数のパッケージにまたがってしまえば保守性が低下します。つまり、パッケージは変更理由が同じクラス群で構成されるべきということです。こうすることでリリースの単位とパッケージの単位を同じにすることができるようになります。