关于设计模式-面向对象设计(一)

什么是模式?

  • 什么是模式 Pattern?

    • 重复发生的问题的解决方案的核心
  • 重要设计模式

    • 策略模式

    • 单例模式

    • 工程模式

    • 抽象工厂模式

    • 观察者模式

    • 适配器模式

    • 备忘录模式

  • 面向对象说起

    • 底层思维

      • 语言构造

      • 编译转换

      • 内存模型

      • 运行时机制

    • 抽象思维

      • 面向对象

      • 组件封装

      • 设计模式

      • 架构模式

  • 分解 的方法(基于过程)

  • 抽象

    • 泛化
      忽略非本质的细节

    • 理想化

    • 复用性高

  • 抵御变化

面向对象设计

基本概念 模式!

  • 抵御变化
  • 各负其责
  • 对象:公共接口,拥有责任的抽象

八大原则:模式不能当算法学习

  • 依赖倒置原则DIP

    • 高层(稳定)不应该依赖于底层(变化),二者都应该依赖于抽象(稳定)

    • 不稳定(稳定依赖变化)img

    • 稳定(提出抽象类,隔离变化)img

    • 抽象(稳定)不应该依赖于实现细节,实现细节应该依赖于抽象(稳定)

  • 开放封闭原则(OCP)

    • 对扩展开放,对更改封闭

    • 类模块可扩展,但是不可修改
      (可以添加类):工厂模式用添加的方式去替换修改(变化的原则)

  • 单一职责原则(SRP)

    • 一个类仅有一个引起它变化的原因

    • 变化方向隐含类的责任

  • LisKov 替换原则(LSP)

    • 子类必须能够替换基类(IS-A)

    • 继承表达类型抽象

    • 接口隔离原则(ISP)

      • 尽量少的暴露方法给客户

      • 小而完备

  • 优先使用对象组合,而不是类继承

  • 封装变化点
    一层变化一层稳定,松耦合

  • 针对接口编程

  • 设计原则提升为设计经验

    • 设计习语
      特定语言相关的惯用法(effective c++)

    • 设计模式
      类与相互通信对象的组织关系

    • 架构模式
      系统与基础结构组织之间的高层模式,子系统划分,职责以及如何组织

posted @ 2021-11-07 12:59  勒勒乐了  阅读(34)  评论(0)    收藏  举报