1、REP 复用/发布
2、CCP 共同闭包
等同SRP,一个类只存在一个变更原因
3、CRP 共同复用
等同ISP,不依赖不需用到的东西
过于关注REP、CCP会导致很多不必要发布
过于关注CCP、CRP会导致复用困难
1、结构化编程:程序控制权的直接转移
2、面向对象编程:程序控制权的间接转移
3、函数式编程:赋值限制
主要作用:如何将数据和函数组织成为类
1、SRP:单一职责,每个软件模块有且只有一个需要被改变的理由;对某一类行为者负责
2、OCP:开闭原则,易于扩展抗拒修改;主导原则
3、LSP:里氏替换
4、ISP:接口隔离
5、DIP:依赖反转,高层策略性的代码不应该依赖实现底层细节代码;多引用抽象而非具体实现