【问题标题】:Architecting a C# console app for multiple different tasks [closed]为多个不同任务构建 C# 控制台应用程序 [关闭]
【发布时间】:2012-09-12 09:24:56
【问题描述】:

我想构建一个简单的 C# 控制台应用程序,该应用程序可以从命令行运行并且可以执行不同的任务。灵活地构建它的最佳方法是什么?我可以看到如何使用策略模式构建各种任务。 Main() 函数只是一个巨大的开关吗?人们通常如何实现这个一般概念?

更新:我正在“风格化” git/hg 或类似的东西,但可能会少一些动作。用户将在命令行下工作,发出带有相关参数的任务,例如:git add -f。因此,以此为例,Git/Mercurial 允许扩展。我实际上正在寻找解决这个问题的各种一般方法,以及方法的好处/权衡。没有一种设计是完美的。

【问题讨论】:

  • 如果不写完整的详细答案,您将使用命令行参数来驱动不同的逻辑路径。如果到明天还没有一个像样的答案,我会推一个。我以前做过很多此类工作,并且有一些相当巧妙的解决方案。
  • 您是否在使用任何类型的依赖注入框架?如果你是这样,你可以使用它来提取 main() 中的所有“任务”实现,并从中提供一个简单的菜单让用户选择。
  • @Mike:我什么都没开始。在设计方面,目前是一片空白。我熟悉 DI/IoC。只是想知道这是否是唯一的方法......谢谢。
  • @exacerbatedexpert:SO 上总有人太容易被冒犯(或恶化)。我正在寻找同行的指导和设计理念。请原谅我知道模式或提到 IoC。而且,我几年前读过 Patterns 书。小心他们所说的“假设”。顺便说一句,一旦你摆脱了对模式的愤怒,你就会意识到它们只是为了加快开发人员之间的讨论而使用的术语。
  • 我认为这个问题不应该结束。目标很明确“从高层次上,我如何构建 .Net 控制台应用程序以实现灵活性”,我不认为这超出了 SO 范围。此外,有几个人有兴趣提供详细的答案(什么是好问题),Casper One 或 Peter Ritchie 都没有就为什么关闭这个问题提出任何建议。这是一个主题和一个真正的问题:stackoverflow.com/help/on-topic

标签: design-patterns c#-4.0 console-application


【解决方案1】:

如果你有复杂的命令行参数,首先使用像http://commandline.codeplex.com/这样的命令行解析库。然后使用command pattern 并针对不同的操作创建一个模型(或控制系统的类)。例如,如果您有一个“add”命令,请创建一个“AddCommand”类来调用模型上的适当方法和属性。

【讨论】:

  • 谢谢。从来没有听说过那个库,但会是一个很好的“成分”来考虑。
猜你喜欢
  • 2011-05-03
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-09
  • 2011-04-11
相关资源
最近更新 更多