JavaScript设计模式样例四 —— 单例模式

单例模式(Singleton Pattern):

定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
目的:阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。
场景:如一个系统中可以存在多个打印任务,但是同时只能有一个正在工作的任务。

例:JS代码实现

// 惰性单例
let lazySingle = (() => {
    let _instance = null
    // 单例
    Single = () => {
        let privateAttribute = '我是私有属性'
        privateMethod = () => {
            // 私有方法
        }
        return {
            publicMethod: () => {
                // 对外暴露方法
            },
            publicAttribute: '我是对外暴露属性'
        }
    }
    // 提供一个全局访问点
    return () => {
        if (!_instance) {
            _instance = Single()
        }
        return _instance
    }
})()

Git地址:https://github.com/skillnull/Design-Mode-Example

posted @ 2019-10-16 20:42  SKILL·NULL  阅读(170)  评论(0编辑  收藏  举报