这有设计模式吗?

时间:2010-05-03 17:47:55

标签: c# design-patterns factory

我有一个需要根据收到的输入调用特定服务的组件。因此,我的组件必须查看输入并基于一个配置,该配置说“对于此输入调用,此服务与此数据”需要调用正确的服务。这些服务有一个共同的签名方法和一个特定的签名方法(每个)。

我想到了一个包含所有三种方法签名的抽象类。两个服务的实现将覆盖所有三种方法(为当前服务不支持的方法抛出NotImplementedException)。还可以定义一个可以用map初始化的组件(每个输入类型都有要调用的服务的类型)。

您是否有更好的方法来应对这种情况?

3 个答案:

答案 0 :(得分:6)

Factory pattern有这个定义:

  

定义用于创建的界面   对象,但让子类决定   要实例化的类。厂   方法让一个类推迟   实例化到子类

听起来像你想要的,对吧?

答案 1 :(得分:0)

Microsoft称之为Provider Model Design Pattern。虽然因为你的方法没有实现所有方法,但它可能不太合适。

At its most basic level the pattern is:

  
      
  • 定义a的抽象基类   合同。抽象基类有   所有的抽象方法和   实现的所需属性   它支持的公共API。

  •   
  • 配置信息。曾经   功能提供程序的实现   要创建类,必须对其进行描述   在配置部分。配置中的提供程序的描述提供了所有信息,以便可以在正在运行的应用程序中实例化提供程序。

  •   

抽象基类通常应该支持工厂方法来创建新对象。

答案 2 :(得分:0)

策略设计模式非常适合您的问题。 策略封装了一个算法,需要根据您输入的数据类型执行。