【ソフトウェア設計】パッケージ原則

ここ最近はソフトウェア設計について勉強しています。
インプットが多く、アウトプットが最近減っているなと思ったので、少しずつでもアウトプットしていきます!

といっても、今まで通り、勉強していることを簡単にまとめる、メモのような形で書いていこうと思います。

再利用・リリース等価の原則 Reuse-Release Equivalent Principle(REP)

「リリースされたものだけを再利用しなさい」
「再利用させたければリリースしなさい」

リリースと再利用が一致する分け方を考える。

全再利用の原則 Common Reuse Principle(CRP)

ひとつのパッケージ(またはバージョン)に起きたコード変更は、すべて利用するか、まったく利用しないかのどちらかを選ぶしかない。

パッケージデザインを考えるときは、ひとつのパッケージに多くを含みすぎてはいけないという注意喚起。

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

ひとつの変更が必要なとき、できる限りひとつのパッケージだけを交換すれば済む形にしなさい、という教え。

非循環依存関係の原則 Acyclic Dependencies Principle(ADP)

パッケージの依存が循環してはならないというシンプルな原則。

安定依存の原則 Stable Dependencies Principe(SDP)

パッケージの依存は常により安定したパッケージに向くという真理を語っている。
「向けるべき」ではなく、「常に向く」。

安定度・抽象度等価の原則 Stable Abstractions Principle(SAP)

パッケージ原則の最後。
パッケージの安定度と抽象度には相関関係がある。
つまり、安定度が高いパッケージであるためには抽象度が高くならなければならず、安定度の低いパッケージで良い場合は抽象度が低くてもよい、と語っている。

この記事を書いた人