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