适配器模式如何工作?

时间:2011-04-22 09:16:10

标签: design-patterns adapter

我最近在我的学期课程中阅读了适配器模式。我已经理解了提供通用接口的概念,以便第三方API可以在我们的系统中工作。

但它如何在编码中起作用,假设我有两个第三方SDK,例如:

A(String name)

A1(String Firstname,String Lastname)

现在我生成一个名为IAAdapater的通用接口。现在编写代码,现在我的问题是,如何通过A(String name)调用A1(String Firstname,String Lastname)IAAdapater

如果我错了,请纠正我!

2 个答案:

答案 0 :(得分:2)

编辑我认为另一个答案更接近您所寻找的内容 - 我实际上是在这里描述一个Facade。

您的IAAdapter需要公开方法A(String name)和A1(String Firstname,String Lastname)

然后,您需要一个委托给底层对象的接口的实现。

IAAdaptor{
A(string name);
A1(string firstname, string lastnae);
}

Adaptor:IAAdaptor{
A(string name){}
A1(string firstname, string lastnae){}
}

答案 1 :(得分:1)

interface IAAdapater {
  A(firstname, lastname)
}

// Adapter for A SDK
A_adapter implements IAAdapter {
  A(firstname, lastname) {
    call A(firstname + ' ' + lastname)
  }
}

// Adapter for A1 SDK
A1_adapter implements IAAdapter {
  A(firstname, lastname) {
    call A1(firstname, lastname)
  }
}

现在您只需要担心一个API:firstname,lastname。不同的适配器将处理其余的。

call A_adapter.A('will', 'smith');
call A1_adapter.A('will', 'smith');

如果我误解了这个问题,请告诉我。