Preface
In computer programming, the packet design principle serves as a way to organize classes in a large system to make the system more organized and manageable, it guides us to determine which class should be placed in which package (package cohesion principle) and how the package is associated with each other (package coupling principle)
Package cohesion principle
- Reuse-release equivalence principle, rep)
- The package must be created with reusable classes.
- The class granularity is equivalent to the package granularity.
- The granularity of reuse is the publishing granularity.
- Either the class is included in the package or the class is not included in the package.
- Common-Reuse Principle, CRP)
- All classes in a package should be reused together.
- If a class in the package is reused, all classes in the package must be reused.
- Common-closure principle (CCP)
- All classes in the package should be closed for changes to the same class nature.
- If a change affects a package, it will affect all classes in the package, but it will not affect other packages.
Package coupling principle
- No-ring dependency principle (Acyclic Dependencies Principle, ADP)
- The package dependency does not allow loops.
- Stable-Dependencies Principle, SDP)
- Dependency in a stable direction
- Stable-abstractions principle (SAP)
- The abstraction level of the package should be consistent with its stability.
Old times -- object-oriented design principles -- Package Design Principles