JS常用的设计模式(6)——桥接模式
2015-01-29 13:32
225 查看
桥接模式的作用在于将实现部分和抽象部分分离开来, 以便两者可以独立的变化。在实现api的时候, 桥接模式特别有用。比如最开始的singleton的例子.
singleton是抽象部分, 而createMask是实现部分。 他们完全可以独自变化互不影响。 如果需要再写一个单例的createScript就一点也不费力.
另外一个常见的例子就是forEach函数的实现, 用来迭代一个数组.
可以看到, forEach函数并不关心fn里面的具体实现. fn里面的逻辑也不会被forEach函数的改写影响.
var singleton = function( fn ){ var result; return function(){ return result || ( result = fn .apply( this, arguments ) ); } }<span id="more-3614"></span> var createMask = singleton( function(){ return document.body.appendChild( document.createElement('div') ); })
singleton是抽象部分, 而createMask是实现部分。 他们完全可以独自变化互不影响。 如果需要再写一个单例的createScript就一点也不费力.
var createScript = singleton( function(){ return document.body.appendChild( document.createElement('script') ); })
另外一个常见的例子就是forEach函数的实现, 用来迭代一个数组.
forEach = function( ary, fn ){ for ( var i = 0, l = ary.length; i < l; i++ ){ var c = ary[ i ]; if ( fn.call( c, i, c ) === false ){ return false; } } }
可以看到, forEach函数并不关心fn里面的具体实现. fn里面的逻辑也不会被forEach函数的改写影响.
forEach( [1,2,3], function( i, n ){ alert ( n*2 ) } ) forEach( [1,2,3], function( i, n ){ alert ( n*3 ) } )
相关文章推荐
- JS常用的设计模式(4)——适配器模式
- Js常用的设计模式(1)——单例模式
- JS常用的设计模式(10)——模版方法模式
- JS几种常用对象设计模式
- 常用的JS设计模式
- 01_js中常用的设计模式
- js常用的设计模式
- JS常用的设计模式(8)——访问者模式
- JS常用的设计模式(16)—— 享元模式
- JS常用的设计模式(12)—— 迭代器模式
- js常用设计模式
- JS常用的设计模式(2)——简单工厂模式
- JS常用的设计模式(9)——策略模式
- JS常用的设计模式(14)—— 备忘录模式
- js原生设计模式——13桥接模式(相同业务逻辑抽象化处理的职责链模式)
- JS常用的设计模式
- JS常用的设计模式(5)——代理模式
- (转)常用的js设计模式
- JS常用的设计模式(13)——组合模式
- JS常用的设计模式(11)—— 中介者模式