javascript设计模式之单体模式
2010-01-08 00:00:00 来源:WEB开发网访问:
对于私有成员,直接访问即可,前面不用加任何修饰,
对于公有的访问在单体作用域内前面要加上“this.”,在单体作用域外前面要加上“circle.”(单体名字.)
呵呵,似乎有点味道了!
3.利用分支技术来来封装浏览器之间的差异
注意的地方:
a一定要用闭包,实现即时绑定
b每个分支之间用分号隔开
c最后返回的是分支的名字
d调用的时候用单体名+分支的方法名;
1 // 利用单体的分支技术来定义XHR(XMLHttpRequest)对象,必须要用闭包才可以实现
2 var XHR = (function(){
3 //The three branches
4 var standard = {
5 cXHR:function(){
6 return new XMLHttpRequest();
7 }
8 };
9 var activeXNew = {
10 cXHR:function(){
11 return new ActiveXObject('Msxml2.XMLHttp');
12 }
13 };
14 var activeXOld = {
15 cXHR:function(){
16 return new ActiveXObject('Microsoft.XMLHttp');
17 }
18 };
19 //To assign(分配) the branch, try each method;return whatever doesn't fail
20 var testObject;
21 try{
22 testObject = standard.cXHR();
23 return standard;// return this branch if no error was thrown
24 }catch(e){
25 try{
26 testObject = activeXNew.cXHR();
27 return activeXNew;
28 }catch(e){
29 try{
30 testObject = activeXOld.cXHR();
31 return activeXOld;
32 }catch(e){
33 throw new Error('Create the XMLHttpRequestObject failed!');
34 }
35 }
36 }
37 })();
38 window.onload = function(){
39 alert(XHR.cXHR());
40 }
最后再啰嗦几句:
对于单体据说是最常用的模式之一了,至于利弊嘛要在实践中慢慢的体会了,由于本人也是初学,所以没有太多的发言权,不足指出还忘高手指教
Tags:javascript 设计模式 单体
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接