你的位置:首页 > 软件开发 > Java > 进阶前端高级攻城狮:使用单体模式设计原生js插件

进阶前端高级攻城狮:使用单体模式设计原生js插件

发布时间:2016-07-06 12:00:05
----------基于上次写的jquery插件进行改造 http://www.cnblogs.com/GerryOfZhong/p/5533773.html 背景:jQuery插件依赖jQuery库,虽然jQuery使用十分广泛,但是对于移动开发或者在其他带宽需求需要 ...

----------基于上次写的jquery插件进行改造  http://www.cnblogs.com/GerryOfZhong/p/5533773.html

 

背景:jQuery插件依赖jQuery库,虽然jQuery使用十分广泛,但是对于移动开发或者在其他带宽需求需要注意的时候,就得考虑,因为我不可能完成一项技术相对来说引用了一个更大的库,这样之不值得的。所以原生js是所有浏览器都支持的一种语言,原生js相对来说就very good了,但是原生js相对新手或者没有很强基础的人来说还是相对比较深奥晦涩一点的,毕竟要考虑一些额外的因素:

  • 不能污染全局的变量,因为你不知道你的代码将会和其他库或者页面加载的广告代码进行冲突
  • 一些高阶的设计模式,因为一些设计模式都是十分经典的思想的凝结,用语言实现也相对比较复杂
  • 前端面向对象编程,因为js自由度比较高,没有和后台定义一样。比如模拟的接口,继承,封装等,来实现功能强大的架构或者需求
  • ..........

 

设计模式单体模式

好处:在使用单体模式的时候,你会享受到真正的私有成员带来的所有好处,而不必付出什么代价,因为单体泪只会被实例化一次单体模式之所以是javascript中最流行的、应用最广泛的模式之一

    • 描述性命名增强代码的自我说明性
    • 包裹单体中可以防止被其他人误改
    • 与第三方库和广告隔离起来
    • 后期进行优化,比如惰性加载

弊端:在使用单体模式的时候,必须要十分了解闭包等概念,而且以后结合其他设计模式共同使用的时候,复杂度和代码量相对来说要求更高,所以需要使用者自己进行衡量,值不值得使用,会不会增加项目开发难度等。如果值得就用,不值得就不建议使用

 

下面为闭包单体模式的骨架(用空专门讲设计模式和一些案例和使用):

var nameSpance= window.nameSpance|| {}; //声明一个空间nameSpance.gerry=(function(){  //这里可以存放私有属性和私有方法,不对外开放,防止其他开发者私自改动  var privateAttr = false;  function privateMethod (){    console.log("这是私有方法,不对外开放...");  }  //这里为抛出对象,供开发者使用的  var publicObject = {    publicAttr : true,    publicMethod : function(){      console.log("这是抛出方法,供开发者使用...")    }  }  return publicObject;})()  
  var publicMethods = {};
  return publicMethods; 
})()

原标题:进阶前端高级攻城狮:使用单体模式设计原生js插件

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。