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>
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/6883639.html,如需转载请自行联系原作者

相关文章
|
3月前
|
JavaScript 前端开发
前端 JS 经典:动态执行 JS
前端 JS 经典:动态执行 JS
28 0
|
5月前
|
存储 JavaScript 安全
js中多个页面之间如何进行通信?有什么区别?
js中多个页面之间如何进行通信?有什么区别?
86 0
|
10月前
|
XML JSON 前端开发
mock.js与组件通信之总线的讲解
mock.js与组件通信之总线的讲解
|
JavaScript
在精不在多,3 分钟看 3 个 JS 小把戏
众所周知,JS 有很多小把戏(tricks),虽然有些基本用的很少,但是偶然遇到了,至少要能读懂吧~ 话不多说,直接开冲~
|
JavaScript
node.js:Inquirer.js接收命令行交互输入
node.js:Inquirer.js接收命令行交互输入
286 0
node.js:Inquirer.js接收命令行交互输入
|
JavaScript
vue.js基础指令和父子通讯总结
vue.js基础指令和父子通讯总结
|
JavaScript 前端开发 API
你不知道的js中关于this绑定机制的解析[看完还不懂算我输]
前言 最近正在看《你不知道的JavaScript》,里面关于this绑定机制的部分讲的特别好,很清晰,这部分对我们js的使用也是相当关键的,并且这也是一个面试的高频考点,所以整理一篇文章分享一下这部分的内容,相信看本文的解析,你一定会有所收获的,如果喜欢的话可以点波赞/关注,支持一下。 游泳、健身了解一下:博客、前端积累文档、公众号、GitHub 为什么要用this: function identify() { console.log("Hello,I'm " + this.name); } let me = { name: "Kyle" }; let you = { nam
114 0
你不知道的js中关于this绑定机制的解析[看完还不懂算我输]
portfinder.js 获取可用端口
portfinder.js 获取可用端口
106 0
|
中间件
Egg.js中路由的核心用法
Egg.js中路由的核心用法
186 0
第201天:js---实现继承的5种方式
一、构造函数方式 1 //构造函数 2 function People(){ 3 this.race = '汉族'; 4 } 5 People.prototype={ 6 eat:function(){ 7 console.
1050 0