我有一个需要根据收到的输入调用特定服务的组件。因此,我的组件必须查看输入并基于一个配置,该配置说“对于此输入调用,此服务与此数据”需要调用正确的服务。这些服务有一个共同的签名方法和一个特定的签名方法(每个)。
我想到了一个包含所有三种方法签名的抽象类。两个服务的实现将覆盖所有三种方法(为当前服务不支持的方法抛出NotImplementedException
)。还可以定义一个可以用map初始化的组件(每个输入类型都有要调用的服务的类型)。
您是否有更好的方法来应对这种情况?
答案 0 :(得分:6)
答案 1 :(得分:0)
Microsoft称之为Provider Model Design Pattern。虽然因为你的方法没有实现所有方法,但它可能不太合适。
At its most basic level the pattern is:
定义a的抽象基类 合同。抽象基类有 所有的抽象方法和 实现的所需属性 它支持的公共API。
配置信息。曾经 功能提供程序的实现 要创建类,必须对其进行描述 在配置部分。配置中的提供程序的描述提供了所有信息,以便可以在正在运行的应用程序中实例化提供程序。
抽象基类通常应该支持工厂方法来创建新对象。
答案 2 :(得分:0)
策略设计模式非常适合您的问题。 策略封装了一个算法,需要根据您输入的数据类型执行。