指导思想
- 可维护性Maintainbility
- 修改功能,需要改动的地方越少,可维护性越好
- 可复用性Reusability
- 代码可以以后重复使用
- 写出自己总结的类库
- 可扩展性Extensibility / Scalability
- 添加功能无需修改原来代码
- 灵活性flexibility / mobility / adaptability
- 代码接口可以灵活调用
开闭原则 Open-Closed Principle
- 对扩展开放,对修改关闭
尽量不修改原来的代码的情况下进行扩展 - 抽象化,多态是开闭原则的关键
单一职责原则 Single Responsibility Principle
- 一个类别太大,功能别太杂,负责单一的职责。
- 高内聚低耦合。
里氏替换原则 Liscov Substitution Princsiple
- 所有使用父类的地方,必须能够透明地使用子类对象
依赖倒置原则 Dependency Inversion Principle
- 依赖抽象,而不是依赖具体
- 面向抽象编程
接口隔离原则 Interface Segregation Principle
- 每个接口应该承担独立的角色,不干自己不该干的事
如Flyable Runnable接口不该合二为一;
避免子类实现不需要实现的方法;
需要对客户提供接口时,只需要暴露最小的接口。
迪米特法则 Law of Demeter
- 和其它类的耦合度变低
- 尽量不要和陌生人说话
- 再迪米特法则中,对于一个对象,非陌生人包括以下几类:
当前对象本身this;
以参数形式传入到当前对象方法中的对象;
当前对象的成员对象;
如果当前对象的成员对象是一个集合,那么集合中的元素也都是朋友;
当前对象所创建的对象。
总结
OCP 开闭原则:总纲,对扩展开放,对修改关闭
SRP 单一职责原则:类的职责要单一
LSP 里氏替换原则:子类可以透明替换父类
DIP 依赖倒置原则:面向接口编程
ISP 接口隔离原则:接口的职责要单一
LoD 迪米特法则:降低耦合
网友评论