谈谈JS设想形式和运用场景一(单例形式)

什么是单例形式

单例形式是单例形式,也叫票据形式,是一种经常运用的软件设计形式。 在运用这个形式时,单例对象的类必需保证只要一个实例存在。 很多时刻全部体系只需要具有一个的全局对象,如许有利于我们协调体系团体的行动。。(来源于维基百科)

1.建立单例形式,案例1:实在就是建立个对象,将我们的对象看作一个人


var person ={
    height:1,
    name:'wy',
    callback:function(){
        console.log(person.name);
    },
    func:function(){
      console.log('this is single function')
    }
}

这类建立在营业中运用,这时刻会有局限性,

1.可扩大性差,假如今后在差别场景复用,如我们方才的类,假如要增添一个width属性,

    
    //
    person.width = 1;
    //新增了一个height属性时刻
    
    person.height=2
    //就会掩盖了本来的属性
   

例子显著看的出来,互相影响,耦合度很高,在营业中运用很轻易会致使掩盖和重写的能够

2.假如我们想一个类即能被继续,又不会转变公用的属性(要领一)


var person =function(){
    
    this.height=1;
    this.name='wy'
    this.callback=function(){
        console.log(person.name);
    },
    this.func=function(){
      console.log('this is single function')
    }
    
}

var girl = new person;
var boy = new person;

girl.height = 2;
boy.height = 3;

console.log(boy.height,girl.height);

如许即可以完成多态和继续,互相又是自力的,但是在营业上运用会涌现一个题目,就是名字反复时刻,会致使一切属性出题目,因而再次扩大完成体式格局


(function(){
    
    var Namespace = Namespace||{};
    Namespace.person = function(){
    
        this.height=1;
        this.name='wy'
        this.callback=function(){
        console.log(person.name);
        },
        this.func=function(){
          console.log('this is single function')
        }
    
    } 

    if(window)
    window.Namespace = Namespace||{};

})(window,undefined)

var person = new Namespace.person;
var person2 = new Namespace.person;
console.log(person.height,Namespace,person)

运用定名空间对差别开辟模块做辨别,能有用防止这类状况。

    原文作者:CxinR文艺
    原文地址: https://segmentfault.com/a/1190000006196099
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞