js设计模式一 单体模式
var Pserson={ _age:10, _name:'defaultName', _setAge:function(){}, _setName:function(){}, getName:function(){}}?
单体模式应该是javascript中最基本的设计模式。
可以用来划分命名空间,减少全局变量的数目。因为单体只会被创建实例化一次,所以你不用担心自己在构造函数中声明了多少成员。每个方法和属性只会被创建一次。所以单体模式一般是用于不会重复使用的功能模块的封装。比如附件上传控件,比如xhr对象创建封装等类似的功能。
单体模式的基本结构
?
var Person={ attribute1:true, attribute2:false, method1:function(){}, method2:function(arg){} }
?这就是单体模式的基本结构,可以对单体进行修改,可以添加新的成员。单体对象由俩部分组成1.属性。2.方法
拥有私有成员的单体。
一般用以下方法来进行创建
1.使用下划线表示法 :使用下划线表示该属性和方法为私有方法,不提倡调用,但从语法和访问范围上都是可以调用的
?
2.使用闭包:采用该方式来进行封装的比较流行。而且是声明时进行立即初始化,如果当构造函数过于复杂,又不希望立即加载的话,可以进行改造成惰性加载。其实就是将整个对象的初始化过程用另外一个函数进行封装,然后暴露给外面的调用者,外面的调用者在需要使用该对象时,再进行初始化
var Person=(function(){ var age=10; var name="test"; var setAge=function(){ } return { getName:function(){ }, getAge:function(){ } }})()?
?
?