2011-04-22 54 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){} 
}