设计模式与面向对象

面向对象基础设计原则

  1. 抽象
  2. 封装
  3. 继承
  4. 多态
  5. 组合

典型的设计原则

  1. Liskov替换原则(LSP)

    • 即子类型必须能够替换他们的基类型,或者说子类型不能添加任何基类型没有的附加约束。
    • 针对接口编程思想:实现继承破坏了基类的实现,接口继承并不定义对象之间的内部关系,耦合度更低,扩展性更好
  2. 开放-封闭原则(OCP)

    • 即对修改封闭,对扩展开放
    • 基本思想就是封装变化的行为作为抽象类或接口
    • 策略模式和模板方法模式提供了实现
  3. 单一职责原则(SRP)

    • 即一个类应当只有一个职责
    • 建立高内聚的类,分离出不相关的功能
  4. 接口隔离原则(ISP)

    • 即接口的单一职责性
    • 定制服务,为不同的角色提供不同的接口,防止接口污染
  5. 依赖倒置原则(DIP)

    • 即高层模块不应依赖于低层模块,两者都应该依赖于抽象
    • 面向接口编程,让高层与低层都依赖接口(抽象)
    • 其他表述
      • 好莱坞原则:呆着别动,到时我会找你
      • 控制反转(IoC)或依赖注入
    • 比如利用抽象工厂模式解除两个类之间的依赖关系;利用Spring框架通过XML配置文件建立接口和具体类之间的关系
  6. 迪米特准则(LOD)

    • 即一个类对于所依赖的类知道的越少越好
    • 这是一个实用的职责分配模式,他指出应该与直接朋友通信,将系统的耦合度保持最低
    • 被依赖的类对外公开的方法要少,要建立中间人委托机制,进而面向接口编程

良好的OO设计

  1. 可复用
  2. 可扩充
  3. 可维护
  4. 设计模式

23种GoF设计模式

设计模式分为类模式和对象模式,类模式处理类和派生类之间的继承关系,对象模式处理对象之间的组织关系。

posted @ 2018-04-22 10:03  bkycrab  阅读(343)  评论(0编辑  收藏  举报