※個人的な学習メモです。
パッケージ設計の原則について「REP、CRP、CCP、ADP、SAP」という言葉があるらしいので簡潔にまとめておきたい。ようはパッケージに限らずモジュール間の結合度をどういう塩梅にするの?という話である。
REP・リリース再利用等価原則
REP=the release reuse equivalency principleのこと。再利用可能なコードはリリース(バージョン管理)ができる状態であること。ようは再利用の単位をしっかり分けて独立させて責務を明確にしておこうよってこと。
CRP・共通再利用の原則
CRP=the common reuse principleのこと。一緒に再利用されるクラスを同じパッケージにいれる。逆に一部しか利用しないのにすべてのパッケージを読み込まない作りはダメってこと。
CCP・共通閉鎖の原則
CCP=the common closure principleのこと。複数のパッケージを読み込まないと動作しないというような実装は避けて、1つのパッケーじに処理を凝集されること。
ADP・非循環依存の原則
ADP=the acyclic dependencies principleのこと。パッケージ感の依存関係が循環しないこと。変更やテストがしづらい、ややこしい設計にしないこと。
SDP・安定依存の原則
SDP = the stable dependencies principleのこと。安定=変更しにくいパッケージに依存する。逆に不安定=変更されやすいパッケージに依存しないこと。
SAP・安定抽象の原則
SAP=the stable abstractions principleのこと。安定しているパッケージには具体的な実装を入れずにインターフェースや抽象クラスを含めて変更に対応できるようにすること。
コメント