设计模式六原则
- 开闭原则,对新增开放,对修改关闭
- 单一职责
- 接口隔离,封装性,一个接口做特定的事情
- 里氏替换,所有父类出现的地方都可以用子类替换
- 迪米特法则,减少类之间的耦合,不相关的类应该通过代理类实现通信
- 依赖倒置原则,应该依赖抽象不应该依赖具体
设计模式简单理解:
-
简单工厂
-
抽象工厂 需要大量产生类似实例的组件可以考虑用工厂模式来封装
-
工厂方法
-
策略模式 优化ifelse代码
-
建造者模式 内部结构复杂(工序多、按照顺序组装),外部使用简单的实例。
-
享元模式 -->提取公共部分
-
模板方法模式 -> 基础的部分提取到父类,做继承
-
装饰器模式 如果我们已经拿到了一些旧代码,但是这些旧代码不能满足我们的需求,我们又不能随意更改他,我们可以考虑使用装饰器模式来增强他的功能
-
桥接模式 抽象出多个独立的模块,各模块独立变化,最后组装成新的实例
-
发布订阅模式 异步通讯
-
单例模式,全局只需要一个实例
-
原型模式 js本身的继承
-
适配器 对于旧代码改造或者新模块引入,我们可能面临接口不通用的情况,这时候我们可以考虑写一个适配器来适配他们
-
外观模式, 内部很细,暴露给外部的很少
-
备忘录模式 -> 类似于函数缓存
-
职责链模式
需要对某个对象进行一系列的操作,这些操作可以组织成一个链条,那我们可以考虑使用职责链模式。链条上的具体任务不需要知道其他任务的存在,只专注自己的工作,消息的传递由链条负责。使用了职责链模式,链条上的任务可以很方便的增加,删除或者重新组织成新的链条,就像一个流水线一样。