共通閉鎖原則とは
パッケージ内のクラスは、同種の変更理由に対して共に閉じていなければならない。パッケージに影響を及ぼす変更は、パッケージ内の全てのクラスに影響を及ぼすことと同意である。
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つでなければいけないように、パッケージの変更理由も複数存在してはならないということになります。変更理由が複数のパッケージにまたがってしまえば保守性が低下します。つまり、パッケージは変更理由が同じクラス群で構成されるべきということです。こうすることでリリースの単位とパッケージの単位を同じにすることができるようになります。