什么是单例形式
单例形式是单例形式,也叫票据形式,是一种经常运用的软件设计形式。 在运用这个形式时,单例对象的类必需保证只要一个实例存在。 很多时刻全部体系只需要具有一个的全局对象,如许有利于我们协调体系团体的行动。。(来源于维基百科)
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)
运用定名空间对差别开辟模块做辨别,能有用防止这类状况。