适配器模式如何工作?
问题描述:
我最近在我的学期课程中阅读了适配器模式。我已经理解了提供通用接口的概念,以便第三方API可以在我们的系统中工作。适配器模式如何工作?
但它是如何将编码工作,可以说,我有两个第三方SDK,如:
A(String name)
A1(String Firstname,String Lastname)
现在我产生被称为,比方说,IAAdapater
的通用接口。现在写代码,现在我的问题是,如何调用A(String name)
或A1(String Firstname,String Lastname)
到IAAdapater
?
纠正我,如果我错了!
答
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');
请让我知道如果我误解了这个问题。
答
编辑我认为其他答案更接近你要找的东西 - 我实际上是在这里描述一个Facade。
你IAAdapter需要公开的方法A(字符串名称)和A1(串名字,字符串姓氏)
然后,您需要这个接口的实现委托给底层的对象。
IAAdaptor{
A(string name);
A1(string firstname, string lastnae);
}
Adaptor:IAAdaptor{
A(string name){}
A1(string firstname, string lastnae){}
}
雅你的正确但现在'A(String name)'将如何处理?因为现在你已经为'lastname'和'firstname'创建了一个适配器,A只有一个叫'String name'的东西..我有点困惑! – sriram 2011-04-22 09:38:30
Nah,我为A和A1创建了一个适配器。 A_adapter使用代码'firstname +''+ lastname处理'字符串名',请参阅代码。 – Znarkus 2011-04-22 09:58:25
雅我得到它的答复感谢! – sriram 2011-04-22 11:23:26