【发布时间】:2017-04-19 18:13:28
【问题描述】:
假设有一组命令需要执行。一个命令可能需要一些输入参数,并且在执行之后,它可能会返回一些结果。一些设计注意事项是:
- 命令在运行时创建
- 命令创建基于用户输入
- 命令输入可以被加密或压缩或两者兼有
- 可能需要以特定于每个命令的方式创建不同的命令
- 不同的命令可能有不同的输入数量和输入类型
- 在运行时提供命令输入
- 不同命令的结果可能有不同的类型
例如,一个命令可能是“GetFileList”,它接收列出其文件的路径并返回文件列表作为结果。在这种情况下,该命令有一个string 类型的输入并返回string[] 类型的结果。另一方面,命令“RenameFile”可能有两个string 类型的输入并返回boolean 值以指示成功或失败。
对于对象创建,我可以想到 Factory 和 Strategy 模式,但我想不出封装结果和输入参数的好方法。哪些设计模式可用于实现此场景?
【问题讨论】:
-
我不知道模式。我想泛型将是要走的路,这取决于你的语言。 (你没有标记你的问题。)模式并不是所有问题的解决方案。不要落入带有图案的小男孩陷阱。
-
@duffymo 我编辑了问题并添加了该语言的标签。谢谢你的建议。我不是设计模式方面的专家,但我很想学习,每当我遇到问题时,我倾向于花一些时间找出是否有任何众所周知的模式可以解决它。
-
Java 具有利用泛型的更实用风格的接口。它们旨在适应 lambdas。我猜 C# 也已经有这样的东西了。
标签: c# design-patterns