0
点赞
收藏
分享

微信扫一扫

javascript设计模式-适配器

适配器

可用来在现有接口和不兼容的类之间进行适配,又称为「包装器」。适配器可以被添加到现有代码中以协调两个不同的接口。适配器有利于大批量改写现有代码,但有时改写现有代码可能会比较方便。这种优化有点类似于JDK升级过程中保留老的API,但建议使用新的API的过程。

门面元素展现的是一个简化接口,它并不提供额外的选择,而且有时为了方便完成某些常见任务它还会做出一些选择和假定。而适配器则要把一个接口转换为另一个接口,它并不会滤除某些能力,也不会简化接口。最简单的例子如下:

var clientObject = {
  string1: 'foo',
  string2: 'bar',
  string3: 'baz'
};
function interfaceMethod(str1, str2, str3) {
  //doSomeThing
}
//适配器,为了适配interfaceMethod接口
function clientToInterfaceAdapter(o) {
  interfaceMethod(o.string1, o.string2, o.string3);
}
/* Usage. */
clientToInterfaceAdapter(clientObject);

// Prototype $ function.
function $() {
  var elements = new Array();
  return elements;
}
/* YUI get method. */
YAHOO.util.Dom.get = function(el) {
  return el;
};

function PrototypeToYUIAdapter() {
  return YAHOO.util.Dom.get(arguments);
}
function YUIToPrototypeAdapter(el) {
  return $.apply(window, el);
}
//使用时,从Prototype切换到YUI,需要添加如下代码,这样就不需要修改原有代码了,只需要把原来提供的API重新封装一次即可
$ = PrototypeToYUIAdapter;
//使用时,从YUI切换到Prototype,需要添加如下代码
YAHOO.util.Dom.get = YUIToPrototypeAdapter;

举报

相关推荐

0 条评论