2013-02-11 75 views
1

在有3個班級的情況下,我需要選擇1個班級來使用。然後通過使用標準方法,我可以訪問該文件。使用1種標準方法的原因是爲了防止在使用不同協議時重寫代碼。適配器或代理?

例如,我有3個類叫做MAPIWebDAV,EWS。每個類都有自己的從Exchange Server中檢索信息的方法。我想要一個擁有所有標準方法來訪問每個類的類。作爲系統管理員,首先選擇使用哪種協議,然後選擇系統應該執行的操作(檢索信息,更新信息等)。這樣,系統管理員就不需要編程知識,因爲他/她在每次更改協議時都不必編輯代碼。

我應該使用哪種設計模式?我應該使用適配器設計模式還是代理設計模式?我目前使用代理設計來設計哪裏有抽象類,另外3個類,A B和C以及1個額外的類Manager類,它們繼承了抽象類中的方法。

我使用管理類來管理訪問是1級。但是當我看着Adapter模式時,它似乎是一個更好的選擇。我應該使用哪個?

回答

1

這聽起來像在這裏既不需要適配器還是代理設計模式。

從你的問題來看,這聽起來像你有一個抽象的基類,它爲操作提供了一個通用的接口,還有三個使用不同協議的具體類和一個管理器(工廠)來實例化所需的具體類。這聽起來很好,您的需求。

0

如果還沒有實現的MAPI,WebDAV的,EWS支持作爲單獨的類(庫)不常用的接口然後就去做使用通用接口它:應該有具體的實現(Providers)通用接口(IDataProvider),無需設計模式。

如果您已經實施的MAPI,WebDAV的支持,EWS作爲單獨的類(庫)不常用的接口然後Adapter pattern會很好。例如,具體的實現不具有共同的接口(見Create()CreateItem()AddItem()方法):

Class diagram

提供者類是在這種情況下,適配器。