2011-07-03 108 views
0

設置:策略或訪問者?

我有一系列類,每個類都作爲不同web服務的代理。這些類都實現了以下結構的兩個葉片之一的接口:

interface IWebService 
{ 
    Dictionary<string, decimal> Get(); 
} 

interface IWebServiceReference : IWebService 
{ 
    decimal Get(string toCode); 
} 

interface IWebServiceTable : IWebService 
{ 
    decimal Get(string fromCode, string toCode); 
} 

我試圖創建一個類WebServiceContext,它封裝了具體的類使得它們可以互換。然而,因爲這些具體的類實現了一個接口層次結構,所以我不需要試着去知道我不會得到預期的結果。

問:

我從未使用過遊客模式,但這種類型的情況,對於該模式要求?

如果是這樣,我應該使用它,或者我能避免的代碼維護的複雜性介紹了通過某種方式改進我的當前設計的方式,讓我實現戰略模式?

+1

對象聽起來更像一個門面模式? –

回答

1

Visitor設計模式是將算法與其操作的對象結構分離的一種方法。

你所描述更像一個Facade圖案聲音:

甲門面是提供一個 簡化接口到一個更大的主體的代碼, 如類庫

+0

我不需要一次操作所有具體的類。當我使用封裝類時,我將它傳遞給我想要使用的具體類的引用。每個具體類都在隔離上工作,從不使用其他具體類。 –