hello world欢迎来到前端的新世界
😜当前文章系列专栏:前端设计模式
🐱👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家指出)🌹
💖感谢大家支持!您的观看就是作者创作的动力
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于需要全局访问点的情况,比如配置信息、日志记录器、线程池等。
单例模式的案例
日志记录器:在一个系统中只需要一个日志记录器来记录系统的运行日志,这时就可以使用单例模式保证该日志记录器的唯一性。
数据库连接池:在许多应用中都需要对数据库进行操作,为了提高性能和效率,通常会使用数据库连接池。通过单例模式可以确保整个应用程序中只有一个数据库连接池实例。
配置信息类:很多应用程序都需要读取配置信息,比如数据库连接信息、系统参数等。使用单例模式可以确保配置信息类的唯一性,并且方便全局访问。
线程池:在多线程编程环境下,线程池被广泛应用以提高性能和减少资源消耗。通过单例模式可以确保整个应用程序中只有一个线程池实例。
计数器:有时候需要对某个对象进行计数,比如统计网站访问量或者某个资源的使用次数,这时可以使用单例模式确保计数器的唯一性。
// 单例构造器
const FooServiceSingleton = (function () {
// 隐藏的Class的构造函数
function FooService() {}
// 未初始化的单例对象
let fooService;
return {
// 创建/获取单例对象的函数
getInstance: function () {
if (!fooService) {
fooService = new FooService();
}
return fooService;
}
}
})();
实现的关键点有:
const fooService1 = FooServiceSingleton.getInstance();
const fooService2 = FooServiceSingleton.getInstance();
console.log(fooService1 === fooService2); // true
优点
缺点
创作不易,要是本文章对广大读者有那么一点点帮助 不妨三连支持一下,您的鼓励就是博主创作的动力