设计模式基础
面向对象编程
- 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)
- 面向接口编程
- 而非面向实例