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 相关文章推荐
用javascript实现的仿Flash广告图片轮换效果
Apr 24 Javascript
use jscript List Installed Software
Jun 11 Javascript
图片翻转效果具体实现代码
Jan 09 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
Feb 23 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
May 07 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
Feb 23 Javascript
VSCode中如何利用d.ts文件进行js智能提示
Apr 13 Javascript
浅谈AngularJS中$http服务的简单用法
May 15 Javascript
Webpack中雪碧图插件使用详解
May 25 Javascript
微信小程序scroll-x失效的完美解决方法
Jul 18 Javascript
vue中引入第三方字体文件的方法示例
Dec 17 Javascript
Vue表单之v-model绑定下拉列表功能
May 14 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中看实例学正则表达式
2006/12/25 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
php执行sql语句的写法
2009/03/10 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
JavaScript中的排序算法代码
2011/02/22 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
python日志记录模块实例及改进
2017/02/12 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
python的依赖管理的实现
2019/05/14 Python
python爬虫 正则表达式解析
2019/09/28 Python
matplotlib quiver箭图绘制案例
2020/04/17 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
篮球社团活动总结
2014/06/27 职场文书
公司慰问信范文
2015/03/23 职场文书
未婚证明范本
2015/06/15 职场文书
环境卫生整治简报
2015/07/20 职场文书