面向对象的六大原则:
指导思想
- 可维护性 Maintainability
- 修改功能,需要改动的地方越少,可维护性就越好
- 可复用性 Reusability
- 代码可以被以后重复使用
- 写出自己总结的类库
- 可扩展性 Extensibility / Scalability
- 添加功能无需修改原来的代码
- 灵活性 Flexibili / Mobility / Adaptability
- 代码接口可以灵活调用
一、单一职责原则
- Single Responsibility Principle
- 一个类别太大、别太累,负责单一的职责
- Person PersonManager
- 高内聚,低耦合
二、开闭原则
- Open-Closed Principle
- 对扩展开放,对修改关闭
- 尽量在不修改原来的代码的情况下进行扩展
- 抽象化,多态是开闭原则的关键
三、里氏替换原则
- Liscov Substitution Principle
- 所有使用父类的地方,必须能够透明的使用子类对象
四、依赖倒置原则
- Dependency Inversion Principle
- 依赖抽象,而不是依赖具体
- 面向抽象编程(面向接口)
五、接口隔离原则
- Interface Segregation Principle
- 每一个接口应该承担独立的角色,不干不该自己干的事
- 例如: 坦克-设计模式中
- Flyable Runnable 不该合二为一
- 避免子弹实现不需要实现的方法
- 需要对客户提供接口的时候,只需要暴露最小的接口
六、迪米特法则
- Law Of Demeter
- 尽量不要和陌生人讲话
- 和其他类的耦合度变低
- 对于一个对象,非陌生人包括以下几类
- 当前对象本身(this)
- 以参数方式传入到当前对象方法中的对象
- 当前对象的成员对象
- 如果当前对象的成员对象是一个集合,那么集合中的元素也都是朋友
- 当前对象所创建的对象