面向对象的设计原则
何为设计??
- 按照哪一种思路或者标准来实现功能
- 功能相同,可以有不同的设计方案来实现
- 伴随着需求的增加,设计的作用才能体现出来
《UNIX/LINUX设计哲学》
准则1:小即是美
准则2:让每个程序做好一件事
准则3:快速建立原型
准则4:舍弃高效率而取可移植性
准则5:采用纯文本来储存数据
准则6:充分利用软件的杠杆效应
准则7:使用shell脚本俩提高杠杠效应和可移植性
准则8:避免强制性的用户界面
准则9:让每个程序都成为过滤器
小准则:允许用户指定环境
尽量使用操作系统内核小儿轻量化
使用小字母并精炼简写
沉默是金
各部分纸盒大于整体
寻求90%的解决方案
五大设计设计原则
- S-单一一直责原则
- 一个程序只做好一件事
- 如果功能过于复杂就拆分,每个部分保持独立
- O-开放封闭原则
- 对扩展开放,对修改封闭
- 增加需求时,扩展新代码,而非修改已有代码
- 这是软件设计的终极目标
- L-李式置换原则
- 子类能覆盖父类
- 父类能出现的地方子类就能出现
- JS中使用较少(弱类型&继承使用较少)
- I-接口独立原则
- 保持接口的单一独立,避免出现“胖接口”
- js中没有接口(TS例外),使用较少
- 类似于单一职责原则,这里更关注的是接口
- D-依赖导致原则
- 面向接口编程,依赖于抽象而不依赖于具体
- 使用方只关注接口而不是关注具体类实现
- js中使用较少(没有接口&弱类型语言)
从设计到模式
介绍23种设计模型
创建型
- 工厂模式(工厂方法模式,抽象工厂模式,构造者模式)
- 单例模式
- 原型模式
结构性
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
行为性
- 策略模式
- 模板方法模式
- 观察者模式(重点)
- 迭代器模式(重点)
- 指责连模式
- 命令模式
- 备忘录模式
- 状态模式(重点)
- 访问者模式
- 中介者模式
- 解释器模式