2011-04-22 64 views
0

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

但它是如何将编码工作,可以说,我有两个第三方SDK,如:

A(String name) 

A1(String Firstname,String Lastname) 

现在我产生被称为,比方说,IAAdapater的通用接口。现在写代码,现在我的问题是,如何调用A(String name)A1(String Firstname,String Lastname)IAAdapater

纠正我,如果我错了!

回答

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'); 

请让我知道如果我误解了这个问题。

+0

雅你的正确但现在'A(String name)'将如何处理?因为现在你已经为'lastname'和'firstname'创建了一个适配器,A只有一个叫'String name'的东西..我有点困惑! – sriram 2011-04-22 09:38:30

+0

Nah,我为A和A1创建了一个适配器。 A_adapter使用代码'firstname +''+ lastname处理'字符串名',请参阅代码。 – Znarkus 2011-04-22 09:58:25

+1

雅我得到它的答复感谢! – sriram 2011-04-22 11:23:26

2

编辑我认为其他答案更接近你要找的东西 - 我实际上是在这里描述一个Facade。

你IAAdapter需要公开的方法A(字符串名称)和A1(串名字,字符串姓氏)

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

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

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