设计模式-单例模式

Posted yzyh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式-单例模式相关的知识,希望对你有一定的参考价值。

        class Test{//只需要new 一次 并且在内部完成
            constructor(name){
                this.name = name
            }
            showName(){
                alert(`name: ${this.name}`)
            }
        }

        Test.aa = (function(){//定义一个静态方法 在内部new 出上面的实例
            let a
            return function(){
                if(!a){
                    a = new Test('chenchen')
                }
                return a
            }
        })()

        let obj1 = Test.aa()
        obj1.showName()

        let obj2 = Test.aa()
        obj2.showName()

        console.log('obj1 === obj2:', obj1 === obj2 )//true 

        console.log('----分割线----')

        let obj3 = new Test('chengcheng')
        obj3.showName()

        console.log('obj1 === obj3:', obj1 === obj3 ) //false 多次new出来的实例对象不等

以上是关于设计模式-单例模式的主要内容,如果未能解决你的问题,请参考以下文章

常用代码片段

性能比较好的单例写法

你熟悉的设计模式都有哪些?写出单例模式的实现代码

单例模式以及静态代码块

设计模式之单例模式

设计模式之单例模式