设计模式前言

56 阅读2分钟

设计模式是基于面向对象编程 OOP 的,所以先介绍面向对象的概念。UML 类图是面向对象编程的重要设计工具。(UML统一建模语言,包括很多种图,类图是其中一种) 面向对象两个重要的概念:

  1. 对象(实例)

三要素:

  • 继承(子类继承父类)
  1. 继承可将公共方法抽离出来,提高复用,减少冗余。
  • 封装(数据的权限和保密)
  1. public 完全开放、protected 对子类开放、private对自己开放;
  2. 减少耦合,不该外露的不外露;
  3. 利于数据、接口的权限管理。
  • 多态(统一接口,不同实现)
  1. 同一个接口,不同表现;
  2. js应用极少
  3. 需要结合java等语言的接口、重写、重载等功能
  4. 保持子类的开放性和灵活性
  5. 面向接口编程

image.png 关系: 泛化:表示继承、 关联:表示引用。

什么是设计

  • 按照哪一种思路或者标准来实现功能
  • 功能相同,可以有不同设计方案来实现
  • 伴随着需求增加,设计的作用才能体现出来

五大设计原则

  1. S- 单一职责原则
  • 一个程序只做好一件事
  • 如果功能过于复杂就拆分开,每个部分保持独立
  1. O- 开放封闭原则
  • 对扩展开放,对修改关闭
  • 增加需求时,扩展新代码,而非修改已有代码
  • 这是软件设计的终极目标
  1. L- 里氏置换原则
  • 子类能覆盖父类
  • 父类能出现的地方,子类就能出现
  1. I- 接口独立原则
  • 保持接口的单一独立,避免出现“胖接口”
  • 类似于单一职责原则,这里更关注接口
  1. D- 依赖倒置原则
  • 面向接口编程,依赖于抽象而不依赖于具体
  • 使用方知关注接口而不关注具体类的实现

设计是设计原则,设计思想

模式是通过概念总结出来的模板

23种设计模式

  • 创建型 - 工厂模式(工厂方法模式、抽象工厂模式、建造者模式)、单例模式、原型模式

  • 组合型 - 适配器、装饰器、代理、外观、桥接、组合、享元

  • 行为型 - 策略、模板方法、观察者、迭代器、职责连、命令、备忘录、状态、访问者、中介者、解释器