单例模式
单例模式用于限制一个类只有一个实例。
案例:
使用单例模式来实现一个登录弹窗,无论任何时候调用登录弹窗应该是同一个实例,以确保登录状态的一致性。
class LoginModal {
private static instance: LoginModal;
// 私有化构造函数,阻止外部通过new直接创建实例
private constructor() {
// 初始化弹窗逻辑,例如创建DOM元素等
console.log("初始化登录弹窗...");
}
// 提供一个公有的静态方法供外部访问获取实例
public static getInstance(): LoginModal {
if (!LoginModal.instance) {
LoginModal.instance = new LoginModal();
}
return LoginModal.instance;
}
// 显示登录弹窗的方法
public show() {
console.log("显示登录弹窗");
// 实现显示弹窗的逻辑,例如设置弹窗DOM的可见性等
}
// 隐藏登录弹窗的方法
public hide() {
console.log("隐藏登录弹窗");
// 实现隐藏弹窗的逻辑,例如设置弹窗DOM的不可见性等
}
}
// 使用
const loginModal1 = LoginModal.getInstance();
const loginModal2 = LoginModal.getInstance();
console.log(loginModal1 === loginModal2); // 输出:true,说明loginModal1和loginModal2是同一个实例
loginModal1.show(); // 显示登录弹窗
// 进行一些操作,比如登录操作
loginModal1.hide(); // 隐藏登录弹窗