【发布时间】: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