0

我有一个使用命令模式构建的软件模块。(有时称为命令处理器)

这个处理器中的命令是通过调用外部可执行文件、工具、服务等来执行的,为此我为每种被调用的工具或服务使用了适配器。

问题是,单一类型的命令(具有不同的内容)可以根据命令对象的内容执行不同类型的外部可执行文件,这将需要不同的适配器

即,命令的接收者/供应者(命令执行的实现)可以根据上下文选择不同类型的适配器。

问题是,

a) 我是否需要将单个通用命令对象拆分为多个命令对象,以便它们与适配器的映射成为一对一的映射。

或者我是否需要以命令对象的接收者/供应者的形式放置一个门面,以便选择合适的适配器的功能委托给这个门面(这是命令的接收器)。

b)当我说我将命令对象参数映射到供应商级别的外部可执行文件的接口时,术语“适配器模式”的使用是否正确?

4

1 回答 1

1

一个。我会对创建多个Command班级说“不”。您将混合这两种抽象,并且可能必须编写太多Command类。

湾。我可能会在这部分使用Strategy而不是Adapater模式。我会创建一个新界面ExecutionStrategy。命令对象可以选择一个ExecutionStrategy. ExecutionStrategy可以由Factory. Factory可以是抽象 Command 类的一部分,也可以是单独的 类ExecutionStrategyFactory

于 2013-03-31T11:24:35.290 回答