js---25桥模式
桥接模式是一种既能把两个对象连接在一起,又能避免二者间的强耦合的方法。通过“桥”把彼此联系起来,同时又允许他们各自独立变化。
主要作用表现为将抽象与其实现隔离开来,以便二者独立化。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type=text/javascript charset=utf-8 src=../commons/CommonUtil.js ></script>
<script type=text/javascript charset=utf-8 src=../jquery/jquery-1.8.0.min.js ></script>
<script>
// 桥接模式: 把2部分分离开来,使他们可以完全独立使用,解耦,既能单独变化又能组织在一起。 //$( function(){} ) $函数执行,并传入一个参数匿名function
$(function(){
var inp = document.getElementById('inp');
//在元素上注册事件,inp.addEventListener(click,sendReq,false);
BH.EventUtil.addHandler(inp,'click',sendReq);
//--------------------------------------------------
// 后台业务逻辑
function sendReq(){// 处理 后台的函数
//$.post('URL',{msg:this.value},function(result){
// CallBack....
//});
alert('发送了指定的数据到后台:' + this.value);
}
}); // 利用桥模式 分开俩个业务逻辑单元
$(function(){
var inp = document.getElementById('inp');
BH.EventUtil.addHandler(inp,'click',bridgeHadler); function bridgeHadler(){
var msg = this.value;
sendReq(msg);
} function sendReq(msg){// 处理后台的函数
//$.post('URL',{msg:this.value},function(result){
// CallBack....
//});
alert('发送了指定的数据到后台:' + msg);
} //单元测试的时候,后台可以直接做测试,不依赖于前台的输入,前面代码强依赖于前台的输入才能执行测试,前后台解耦。
sendReq('我也是数据..');
}); </script>
</head>
<body>
<input id=inp type=button value="我是数据.." />
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type=text/javascript charset=utf-8>
// 桥模式:
var PublicClass = function(){
var name = '张三';//private variable
// getter 访问私用成员变量
this.getName = function(){//原先变量只能在内部访问,现在可以在外部访问了,这就是桥模式
return name ;
};
};
var p1 = new PublicClass();
alert(p1.getName()); var PublicClass = function(){
// 私用化的变量
var privateMethod = function(){
alert('执行了一个很复杂的操作...');
};
// 单元测试这个很复杂的函数
//privateMethod();
this.bridgeMethod = function(){
return privateMethod();
}
};
var p1 = new PublicClass();
p1.bridgeMethod(); // 桥模式: 使每个单元都能独立运行,又能组织在一起
var Class1 = function(a,b,c){
this.a = a ;
this.b = b ;
this.c = c ;
}; var Class2 = function(d,e){
this.d = d ;
this.e = e ;
}; var BridgeCalss = function(a,b,c,d,e){
this.class1 = new Class1(a,b,c);
this.class2 = new Class2(d,e);
};
//桥模式,可以起到桥的作用就可以了。整体分开或者组合在一起。
</script>
</head>
<body>
</body>
</html>
js---25桥模式的更多相关文章
- JavaScript高级---桥模式设计
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- 图文详解AO打印(端桥模式)
一.概述 AO打印是英文Active-Online Print的简称,也称主动在线打印.打印前支持AO通讯协议的AO打印机首先通过普通网络与C-Lodop服务保持在线链接,网页程序利用JavaSc ...
- 图文详解AO打印(端桥模式)(转)
一.概述 AO打印是英文Active-Online Print的简称,也称主动在线打印.打印前支持AO通讯协议的AO打印机首先通过普通网络与C-Lodop服务保持在线链接,网页程序利用JavaSc ...
- JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法)
JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法) 一丶正则的用法 创建正则对象: 方式一: var reg=new ...
- 设计模式 - Bridge 桥模式
Bridge桥模式也属于"的单一职责"模式中的典型模式.问题描述:我们绘制图形时,图形可以有不同形状以及不同颜色,比如圆形可以是红的,绿的,方形可以是红的绿的,如果用代码来描绘这些 ...
- Js 职责链模式 简单理解
js 职责链模式 的简单理解.大叔的代码太高深了,不好理解. function Handler(s) { this.successor = s || null; this.handle = funct ...
- Bridge 桥模式
之前一直以为桥是简单地沟通几个不同接口,使之能够按照一定流程工作.但重新查了一下解释,才有新解. 对于同一个产品的不同影响因子,如果使用继承的话,则这些影响因子则会按照M1*M2* ... Mn的数量 ...
- c++ 设计模式7 (Bridge 桥模式)
4.2 Bridge 桥模式 动机: 由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个变化的维度. 代码示例: 实现一个Messager,含有基本功能PlaySound,Connec ...
- 【转】EXT JS MVC开发模式
原文链接:EXT JS MVC开发模式 在app(亦即根目录)文件夹下面创建controller.model.store和view文件夹,从名称上就知道他们该放置什么代码了吧.然后创建Applicat ...
随机推荐
- JDK工具(一)–Java编译器javac
1.概述 javac.exe: Java编译器,将Java源代码转换成字节码. 2.用法 javac <选项> <源文件> (使用过程中发现,javac <源 ...
- 05-数据类型转换(bool类型)
- 安装Signavio Web设计器
在Jbpm3版本号中,这个著名的开源项目并没有基于浏览器的图形化流程设计器,结果导致流程设计一直停留在CS阶段. 比方我之前做过的一个OA项目.项目中採用的就是Jbpm3.因为它不支持在浏览器中的图形 ...
- c++开源爬虫-Larbin简单介绍
原文地址:http://leihuang.net/2014/06/16/Larbin-Introduction/ 由于近期学校实训.做的是一个搜索相关的项目,而且是c++的一个项目.所以就想到了lar ...
- css3中rem和em是干嘛的
css3中rem和em是干嘛的 一.总结 一句话总结:对rem综合评价是用来做web app它绝对是最合适的人选之一. 这里我特别强调web app,web page就不能使用rem吗,其实也当然可以 ...
- MVP模式入门(结合Rxjava,Retrofit)
本文MVP的sample实现效果: github地址:https://github.com/xurui1995/MvpSample 老规矩,在说对MVP模式的理解之前还是要再谈谈MVC模式,了解了MV ...
- 4.graph.h
#pragma once #include <stdio.h> #include <graphics.h> #include <mmsystem.h> #pragm ...
- 基于.NET平台常用的框架技术整理
个人整理 部分收藏于:http://www.cnblogs.com/hgmyz/p/5313983.html 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线 ...
- linux下chm阅读器
推荐使用Okular这个软件,Okular是一个pdf阅读器,但是对chm文件支持很好.
- 彻底分析虚拟视频驱动vivi(三)
在Ubuntu系统中接上usb摄像头设备时,系统会自动安装对应的usb设备驱动程序.我们现在要使用自己编译的vivi驱动,该怎么办呢? 1.先安装系统自带的vivi驱动和它所依赖的所有驱动:sudo ...