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


Posted in Javascript onMay 23, 2020

本文实例讲述了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);
  }
//目的:两个类能独立的修改,而门面的意义在于调用方便

桥梁模式:

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

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

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

Javascript 相关文章推荐
使用typeof判断function是否存在于上下文
Aug 14 Javascript
创建你的第一个AngularJS应用的方法
Jun 16 Javascript
AngularJS 过滤器的简单实例
Jul 27 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
Jan 23 Javascript
vue-router:嵌套路由的使用方法
Feb 21 Javascript
简单实现AngularJS轮播图效果
Apr 10 Javascript
通过button将form表单的数据提交到action层的实例
Sep 08 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
Dec 29 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
Mar 09 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
Oct 08 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
May 23 #Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
May 23 #Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
May 22 #Javascript
微信小程序点击滚动到指定位置的实现
May 22 #Javascript
使用JavaScript通过前端发送电子邮件
May 22 #Javascript
uni-app微信小程序登录授权的实现
May 22 #Javascript
jQuery 选择器用法实例分析【prev + next】
May 22 #jQuery
You might like
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
Python中index()和seek()的用法(详解)
2017/04/27 Python
python 读写中文json的实例详解
2017/10/29 Python
3分钟学会一个Python小技巧
2018/11/23 Python
python滑块验证码的破解实现
2019/11/10 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
高中三年学习生活的自我评价
2013/10/10 职场文书
法定代表人身份证明书
2014/09/10 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
个人查摆剖析材料
2014/10/16 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
职工年度考核评语
2014/12/31 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
实习报告范文
2019/07/30 职场文书
javascript对象3个属性特征
2021/11/17 Javascript