类设计五大原则:
SRP | 单一职责原则 | 一个类应该有且仅有一个需要改变理由。 |
OCP | 开闭原则 | 你可以扩展一个类的行为而不用修改它。 |
LSP | 里氏替换原则 | 派生类必须可以替换它的基类。 |
DIP | 依赖倒置原则 | 依赖于抽象而不依赖具体实现。 |
ISP | 接口分隔原则 | 制作客户端特定的精细接口。 |
下面是六个关于包的原则。 这里的“包”指的是一个二进制可交付构件,就像java jar文件和dll文件,而不是java包和c++ namespace这样的命名空间。
前三个是关于包的内聚性的原则,这些原则告诉我们什么东西应该放在包中,什么东西不应该放在包中。
REP | 发布和重用等价原则 | 重用的颗粒就是发布的颗粒。 |
CCP | 普通闭包原则 | 把需要一起改变的类打包在一起。 |
CRP | 普通重用原则 | 把一起使用的类打包在一起。 |
后三个是关于包间耦合性的原则, 讲述系统包结构评价标准、尺度。
ADP | 非循环依赖原则 | 包依赖图中一定不能存在环。 |
SDP | 稳定的依赖原则 | 依赖于稳定的方向。依赖的方向应该指向更稳定的包。 |
SAP | 稳定的抽象原则 | 抽象度随着稳定性增加而增加。越稳定的东西应该越抽象。 |