我有一个使用命令模式构建的软件模块。(有时称为命令处理器)
此处理器中的命令是通过调用外部可执行文件,工具,服务等来执行的,我正在使用适配器被调用的每种工具或服务。
问题是,单个类型的命令(具有不同的内容)可以执行不同类型的外部可执行文件,具体取决于命令对象的内容,这将需要不同的适配器
即命令的接收器/供应商(执行命令的执行)可以根据上下文选择不同类型的适配器。
问题是,
a)我是否需要将单个通用命令对象拆分为多个命令对象,以便它们与适配器的映射成为一对一。
或者我需要以命令对象的Receiver / supplier形式放置一个外观,以便选择适当的适配器的功能被委托给这个外观(这是命令的Receiver)。
b)当我说我将命令对象参数映射到供应商级别的外部可执行文件的接口时,是否正确使用术语“适配器模式”?
答案 0 :(得分:1)
一个。我会说'不'来创建多个Command
类。您将混合两个抽象,并可能必须编写太多Command
类。
湾对于这部分,我可能会使用Strategy
而不是Adapater
模式。我会创建一个新接口ExecutionStrategy
。命令对象可以选择ExecutionStrategy
。可以通过ExecutionStrategy
创建Factory
(或从已创建的对象池中提供)。 Factory
可以是抽象Command类的一部分,也可以是单独的
ExecutionStrategyFactory
上课。