文章目录
1.什么是设计模式?
设计模式是一套经反复使用,多人知晓,经过分类的代码设计经验的总结
2.为什么要使用设计模式?
为了代码的可复用性,让代码更便于理解,保证代码的可靠性
设计模式使代码实现了真正的工程化
3.有哪些设计模式?
- 构造器模式
- 模块化模式
- 暴露模块模式
- 单例模式
- 中介者模式
- 原型模式
- 命令模式
- 外观模式
- 工厂模式
- mixin模式
- 装饰模式
- 亨元模式
- MVC模式
- MVVM模式
- 组合模式
- 适配器模式
- 外观模式
- 观察者模式
- 迭代器模式
- 惰性初始模式
- 代理模式
- 建造者模式
4.单例模式
定义:在内存中只会创建且仅创建一次对象的设计模式
实现原理
单个实例,只有一个对象,
多次创建,只返回一个对象
示例
function fn() {
/*给函数添加一个属性,因为函数是全局的,所以该属性一旦添加就一直存在*/
if (!fn.obj) {
fn.obj = { name: "zs"};
}
return fn.obj;
}
var f1 = new fn();
var f2 = new fn();
console.log(f1 === f2); //true
5.组合模式
定义:把多个对象组成树状结构来表示局部与整体,使得用户可以同时操作单个对象和对象的组合。
实现原理
1.可以以相同的方法处理对象的集合和其中特定的子对象
组合对象和组成该对象的对象可以实现同一批操作
对组合对象执行的操作会向下传递到所有的组成对象使所有组成对象执行同样操作
2.可以将对象组织成树状结构,是整棵树可被遍历
所有组合对象都实现一个用来获取其子对象的方法
借助该方法可以隐藏实现的细节,组织子对象,使子对象内部的实现不形成依赖
示例
在这里插入代码片