Skip to content

设计模式基础

面向对象编程

  • OOP - Object Oriented Program
  • 将抽象的编程概念,想象成一个对象

重要概念

  • 类 class,即模板
  • 对象,即实例

面向对象三要素

  • 继承 - 抽离公共代码,实现代码复用;注意 super 的使用
  • 封装 - 高内聚,低耦合;修饰符 private protected public
  • 多态 - 更好的扩展性;函数的重写和重载(一个函数多参数类型)

UML 类图

用于面向对象设计的图形化语言

  • 统一建模语言 Unfied Modeling Language
  • 软件设计的绘图标准
  • 除了类图,还有其他的图,如时序图、协作图等

画图工具

  • 安装 MS Visio
  • 或其他支持 UML 工具

单个类

  • 三个区域:名称,属性,方法
  • 权限描述:+(public),-(private),#(protected)

类之间的关系

  • 实现 - 实现接口;虚线空心箭头 ---》
  • 泛化 - 继承父类;实线空心箭头 ——》
  • 关联 - A 类是 B 类的属性;实线实心箭头 ——>

关联关系的细化

一般不会这么细化

  • 聚合- 整体包含部分,部分可以脱离整体而单独存在;空心菱形(实线实心箭头) ◇——>
  • 组合- 整体包含部分,部分不可以脱离整体;实心菱形(实线实心箭头) ◆——>
  • 依赖- 不是属性关系,而是函数参数或返回值;虚线箭头(实心箭头) - - ->

设计原则

  • SOLID 五大设计原则
  • 重点关注:开放-封闭原则

单一职责原则(SRP)

  • 每个程序都做好一件事
  • 功能太多了就要拆分
  • 每个部分保持相互独立

开放-封闭原则(OCP)

  • 对扩展开发
  • 对修改封闭
  • 需求发生变化时,通过扩展来解决,而非改动

里氏替换原则(LSP)

前端不常用

  • 子类能覆盖父类
  • 父类出现的地方,子类也能出现

接口隔离原则(ISP)

类似单一职责原则

  • 保持接口的单一独立
  • 避免出现“胖接口”

依赖倒置原则(DIP)

  • 面向接口编程
  • 而非面向实例

基于 MIT 许可发布