JavaScript设计模式--桥梁模式引入操作实例分析

 更新时间:2020年05月23日 09:17:42   作者:WFaceBoss  
这篇文章主要介绍了JavaScript设计模式--桥梁模式,结合实例形式分析了JavaScript设计模式中桥梁模式应用操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了JavaScript设计模式--桥梁模式引入操作。分享给大家供大家参考,具体如下:

1.使用情况

(1)事件的监控

#1,利用页面的button来选择宠物的例子(思路)

button.addEvent(element,"click",getPetByBame);
  function getPetByBame(e){
    var id = this.id;
    asyncRquest("GET",'pet.action?id='+id,function(pet){
      consols.log("request pet"+pet.resopnseText)
    })
  }

#2,addEvent函数

/*obj:需要增加事件的对象
* type:事件名称
* fn:执行事件的函数
* */
function addEvent(obj,type,fn){//addEvent:为某个文档节点增加事件的方法
  if(obj.addEventListener){//Mozilla中:
    obj.addEventListener(type,fn,false);
  }else if(obj.attachEvent){//IE中:
    obj["e"+type+fn] = fn;
    obj[type+fn] = function(){
      obj["e"+type+fn]()
    }
    obj.attachEvent("on"+type,fn)
  }
}

总结:该种方式对于单元测试很难进行

改进为用简单的桥梁模式来解决

#1,后台中的api

function getPetByBame(id,callBack){
    sayncRquest("GET",'url?id='+id,function(pet){
      callBack(pet)
    })

#2,桥梁

//定义一个桥梁叫抽象和实现相互联系在一起
  addEvent(element,"click",getPetByNameBridge)
  function getPetByNameBridge(){
    getPetByBame(this.id,function(pet){
      consols.log("request pet"+pet.resopnseText);
    })
  }

总结:这种做法使API和展现层完全分离,API和展现层可以灵活的变动。

(2)特权函数

//特权函数
var privilege=function () {
  //信息全封闭,内部业务逻辑复杂,做成一个特权函数,使调用方便
  var complex=function (x,y) {
    //复杂的数学处理
  }

 this.bridge=function () { //提供公共接口,返回一个单体
   return {
     bridgeAdd:function () {
       //处理前
       complex(1,2);
       //处理后
     }

   }
 }
}

(3)多个类的连接

//多个类的连接
var class1=function (a,b) {
  this.a=a;
  this.b=b;
}
  var class2=function (e) {
    this.e=e;
  }
  //桥梁的连接
  var bridgeClass=function () {
    this.one=new Class1(1,2);
    this.two=new Class1(1);
  }
//目的:两个类能独立的修改,而门面的意义在于调用方便

桥梁模式:

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • require.js 加载过程与使用方法介绍

    require.js 加载过程与使用方法介绍

    require.js是javascript模块化编程中常用的一个JS库。这篇文章主要介绍了require.js 加载过程与使用方法,需要的朋友可以参考下
    2018-10-10
  • 微信小程序实现文本输入弹窗

    微信小程序实现文本输入弹窗

    这篇文章主要为大家详细介绍了微信小程序实现文本输入弹窗,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • JavaScript实现的联动菜单特效示例

    JavaScript实现的联动菜单特效示例

    这篇文章主要介绍了JavaScript实现的联动菜单特效,涉及javascript事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2019-07-07
  • 微信小程序实现吸顶特效

    微信小程序实现吸顶特效

    这篇文章主要为大家详细介绍了微信小程序实现吸顶特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • 利用JavaScript控制元素(标签)的显示与隐藏

    利用JavaScript控制元素(标签)的显示与隐藏

    这篇文章主要给大家介绍了关于如何利用JavaScript控制元素(标签)的显示与隐藏的相关资料,JavaScript有多种方式可以实现,文中介绍了三种方法以及区别,需要的朋友可以参考下
    2023-07-07
  • JavaScript的arguments对象应用示例

    JavaScript的arguments对象应用示例

    使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们,下面为大家介绍下其具体的应用
    2014-09-09
  • 《javascript设计模式》学习笔记二:Javascript面向对象程序设计继承用法分析

    《javascript设计模式》学习笔记二:Javascript面向对象程序设计继承用法分析

    这篇文章主要介绍了Javascript面向对象程序设计继承用法,结合实例形式分析了《javascript设计模式》中JavaScript面向对象程序设计继承相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • js加载读取内容及显示与隐藏div示例

    js加载读取内容及显示与隐藏div示例

    这篇文章主要介绍了js加载读取内容及显示与隐藏div的方法,需要的朋友可以参考下
    2014-02-02
  • IE和Firefox下event事件杂谈

    IE和Firefox下event事件杂谈

    如果在使用javascript的时候涉及到event处理,就需要知道event在不同的浏览器中的差异。
    2009-12-12
  • javascript垃圾收集机制的原理分析

    javascript垃圾收集机制的原理分析

    javascript具有自动垃圾收集机制,执行环境会负责管理代码执行过程中使用的内存。在编写javascript程序时,开发人员不用再关心内存使用问题,所需内存的分配以及无用内存的回收完全实现了自动管理。本文将详细介绍javascript的垃圾收集机制
    2016-12-12

最新评论