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 ...
随机推荐
- C/C++里面的struct和typedef
今天看到这样的代码 typedef struct _Abc { uint64_t unit_id; ...... } Abc; 开始不理解这个的意思,后来看到这个解释: https://stackov ...
- Android:管理应用内存
全部内容均来源于官方文档https://developer.android.com/training/articles/memory.html only way to completely relea ...
- C++学习笔记11-面向对象2
1. 仅仅能初始化直接基类 一个类仅仅能初始化自己的直接基类.直接就是在派生列表中指定的类.假设类C 从类B 派生,类B 从类A 派生,则B 是C 的直接基类.尽管每一个C 类对象包括一个A 类部 ...
- 从Linux系统内存逐步认识Android应用内存
总述 Android应用程序被限制了内存使用上限,一般为16M或24M(具体看系统设置),当应用的使用内存超过这个上限时,就会被系统认为内存泄漏,被kill掉.所以在Android开发时,管理好内存的 ...
- 7.包含(ng-Include)
转自:https://www.cnblogs.com/best/tag/Angular/ 获取.编译并引用一个外部HTML片段(也可以是内部的) 默认情况下,模板URL被强制为使用与应用文档相同的域名 ...
- Unity(IoC)
一.什么是IoC? IoC(Inversion of Control,控制反转)又称“依赖注入”(Dependence Injection,DI). 控制反转就是创建对象的权利由开发人员控制,转为由容 ...
- Xml、Json序列化
Xml序列化: public class XmlHelper { private static string XmlPath = Path.Combine(AppDomain.CurrentDomai ...
- Sqoop 的优势
1.sqoop可以高效的可控的利用资源,比如它可以通过调整任务数,来控制任务的并发度,另外还可以配置数据库的访问时间等等 2.sqoop能自动的完成数据类型的映射与转换 3.它支持多种数据库,比如my ...
- 网络爬虫与web之间的访问授权协议——Robots
网站的管理者们通常会有这样一种心态:一方面期待百度.Google这样的搜索引擎来抓取网站的内容,另一方面又很厌恶其他来路不明的网络爬虫抓取自己的信息.正是因为这样,才有“好爬虫”.“坏爬虫”这样的说法 ...
- <QT障碍之路>QApplication:No such file or directory
原因:QT5将很多部件都移动了QT widgets模块中. 解决方法: 在.pro文件中添加 greaterThan(QT_MAJOR_VERSION, ): QT += widgets