用于封装功能集合的设计模式

时间:2017-04-18 12:15:42

标签: c# design-patterns

假设有一组需要实现的命令。命令可能需要一些输入参数,执行后可能会返回一些结果。一些设计考虑因素是:

  • 在运行时创建命令
  • 创建命令基于用户输入
  • 命令输入可以加密或压缩,也可以两者兼有
  • 可能需要以特定于每个命令的方式创建不同的命令
  • 不同的命令可能具有不同数量的输入和输入类型
  • 在运行时提供命令输入
  • 不同命令的结果可能有不同的类型

例如,命令可能是' GetFileList'接收列出其文件的路径并返回文件列表作为结果。在这种情况下,该命令具有类型为string的单个输入,并返回类型string[]的结果。另一方面,命令'RenameFile'可能有两个类型为string的输入,并返回boolean值以指示成功或失败。

对于对象创建,我可以想到 Factory 策略模式,但我想不出一种封装结果和输入参数的好方法。哪些设计模式可用于实现此方案?

2 个答案:

答案 0 :(得分:2)

这是......

COMMAND PATTERN:)

简而言之,您必须拥有一个 ICommand 接口,其方法执行

执行方法可能无效或可能返回某些结果(可能以通用方式)。如果它无效,那么你必须有另一个通用方法,如 GetResult

创建方法时,可以在其构造函数中传递参数。

答案 1 :(得分:1)

此处http://www.dofactory.com/net/command-design-pattern是使用示例解释的命令设计模式的页面。