oop

面向对象六大原则

面向对象六大原则

指导思想

  • Maintainability 可维护性
    • 修改功能,需要改动的地方越小,可维护性就越好。
  • Reusebility 可复用性
    • 代码可以被重复使用
    • 写出自己总结的类库
  • Extensibility/Scalability 可扩展的
    • 添加功能无需修改原来的代码
  • Flexibility/Mobility/adaptability 灵活性

    • 代码接口可以灵活调用

      设计原则

      单一职责原则 single Responsibility Principle

  • 一个类别太大,别太累,负责单一的职责

  • 高内聚,低耦合

    开闭原则 Open-Closed Principle

  • 对扩展开放,对修改关闭

    • 尽量不修改原来的代码的情况下进行扩展
  • 抽象化,多态就开闭原则的关键

    • 新的功能只扩展新的子类就行了。

      里氏替换原则 liscov Substitution Principle

  • 所有使用父类的地方必须能够透明的使用子类对象

    • 子类不能重写父类的方法

      依赖倒置原则 Dependency inversion Principle

  • 依赖抽象,而不是依赖具体

  • 面向抽象(接口)编程

    接口隔离原则 Interface segregation Principle

  • 每个接口应该承担独立的角色

    • flyable Runnable 不该合二为一
    • 避免子类实现不需要实现的方法
    • 需要对客户提供接口的时候,只需要暴露最小的接口

      迪米特法则 law of demeter

  • 尽量不要和陌生人说话

  • 对于一个对象,非陌生人包括一下几类
    • this
    • 成员变量(对象)
    • 如果成员变量是集合,集中中的元素
    • 当前对象创建的对象
    • 传参
  • 对其他类的耦合变低
    • 高内聚,低耦合