策略或访客?

时间:2011-07-03 01:18:13

标签: c# strategy-pattern

环境:

我有一系列的类,每个类都充当不同Web服务的代理。这些类都实现了以下结构的两个叶接口之一:

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

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

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

我正在尝试创建一个类WebServiceContext,它封装了具体的类并使它们可以互换。但是,因为这些具体的类实现了接口层次结构,所以我不需要尝试它就知道我不会得到预期的结果。

问题:

之前我从未使用 visitor 模式,但这种情况是否需要该模式?

如果是这样,我应该使用它,还是可以通过以某种方式改进我当前的设计以允许我实现策略模式来避免代码维护的复杂性?

1 个答案:

答案 0 :(得分:1)

Visitor设计模式是一种将算法与其操作的对象结构分离的方法。

您所描述的内容听起来更像是Facade模式:

  

外观是一个提供的对象   简化了与更大身体的接口   代码,例如类库