这是我参与「第四届青训营 」笔记创作活动的第1天,在课程中介绍了几种前端中的设计模式,包括有:
- 单例模式
- 发布订阅模式
- 原型模式
- 代理模式
- 迭代器模式
- 组合模式
以下是我自己去了解的其中一些设计模式。
单例模式
单例模式属于创建型模式,这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
单例模式具有以下优点:
- 减少内存开销
- 避免资源多重占用
export class SingleObj {
static instance = new SingleObj();
constructor() {}
static getInstance() {
if (this.instance) {
return this.instance;
}
this.instance = new SingleObj();
return this.instance;
}
}
发布订阅模式
发布订阅模式又叫观察者模式,属于行为型模式。当对象之间存在一对多关系时,可以使用发布订阅模式,如当一个东西发生变化时,会通知依赖它的对象。就像一个用户上线,自动通知这个用户的关注者。
在对象中有一个arraylist或其他类型用来存放其观察者,当发视订阅时,将观察者加入这个arraylist中;当对象的某项属性发生变化时,通知arraylist中的观察者。
发布订阅模式的应用广泛,用于系统架构之间的解耦和,邮件订阅和上线订阅等。
代理模式
代理模式主要是为其他对象提供一种代理以控制对这个对象的访问,主要解决在直接访问对象时带来的问题。代理模式属于结构型模式。代理模式常用于监控,代理工具,前端框架实现上。最常见的使用代理模式的例子是windows的快捷方式。
在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。