一、SOLID
头文字 | 缩写 | 英文全称 | 中文全称 | 解释 |
---|
S | SRP | Single responsibility principle | 单一职责法则 | 一个类应该只有单一职责,也就是说,只允许有一个软件定义的改变影响到类 |
O | OCP | Open/close Principle | 开/闭原则 | 软件实体应该对扩展开放,对修改关闭 |
L | LSP | Liskov substitution principle | 里氏替换法则 | 程序中的对象可以被子类替换,而无需修改其他代码。也被称作面向抽象编程 |
I | ISP | Interface segregation principle | 接口隔离法则 | 多个特定功能的接口,要好于一个通用目的的接口 |
D | DIP | Dependency inversion principle | 依赖反转法则 | 要依赖于抽象编程,不要依赖于具体类 |
二、其他原则
英文全称 | 中文全称 | 解释 |
---|
DRY – Don’t repeat yourself | 不写重复代码 | 不写重复代码,而是抽象成可复用的代码块 |
Encapsulate What Changes | 封装经常修改的代码 | 将来要被修改的代码要封装起来,变量和方法的访问权限默认设置为私有,并且逐步放开它们的访问权限 |
Favor Composition over Inheritance | 优先使用组合而非继承 | 组合允许在运行时通过设置属性修改一个类的行为,通过使用多态即以接口的形式实现类之间的组合关系,并且为修改组合关系提供了灵活性 |
Delegation principle | 代理原则 | 不要期望一个类完成所有的功能,可以适当地把一些功能交给代理类实现。代理原则的典范是:Java 中的equals() 和 hashCode() 方法。为了比较两个对象的内容是否相同,我们让用于比较的类本身完成对比工作而非它们的调用方。这种设计原则的好处是:没有重复编码而且很容易修改类的行为。 |
参考
https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
https://www.javacodegeeks.com/2012/08/10-object-oriented-design-principles.html