Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 为多个不同任务设计C控制台应用程序_Design Patterns_C# 4.0_Console Application - Fatal编程技术网

Design patterns 为多个不同任务设计C控制台应用程序

Design patterns 为多个不同任务设计C控制台应用程序,design-patterns,c#-4.0,console-application,Design Patterns,C# 4.0,Console Application,我想构建一个简单的C控制台应用程序,它可以从命令行运行,并且可以执行不同的任务。灵活构建这个应用程序的最佳方法是什么?我可以看到如何使用策略模式构建各种任务。主要功能只是一个巨大的开关吗?人们通常如何实现这一总体概念 更新:我从风格上看git/hg或类似的东西,但可能没有那么多动作。用户将在命令行上工作,发出一个带有相关参数的任务,例如:git add-f。因此,以它为例,Git/Mercurial允许扩展。实际上,我正在寻找处理这个问题的各种通用方法,以及各种方法的好处/权衡。没有一种设计是完

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


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

如果您有复杂的命令行参数,请首先使用类似的命令行解析库。然后对不同的操作使用and,并创建控制系统的模型或类。例如,如果您有一个add命令,请创建一个AddCommand类来调用模型上的相应方法和属性。

如果您有复杂的命令行参数,请首先使用命令行解析库,如。然后对不同的操作使用and,并创建控制系统的模型或类。例如,如果您有一个add命令,请创建一个AddCommand类,该类调用模型上的适当方法和属性。

在不编写完整详细答案的情况下,您可以使用命令行参数来驱动不同的逻辑路径。如果明天还没有一个合适的答案,我会推一个。我以前做过很多这类的工作,并且有一些非常简洁的解决方案。您是否使用了依赖注入框架?如果您是,您可以使用它在main中调出所有任务实现,并从中提供一个简单的菜单供用户选择。@Mike:我还没有开始任何操作。就设计而言,目前这只是一张白纸。我熟悉DI/IoC。只是想知道这是不是唯一的办法。。。Thx。@EyeratedExpert:总有人很容易被冒犯或激怒。我正在寻找同行的指导和设计理念。请原谅我知道模式或提到国际奥委会。我几年前读过《模式》这本书。当心他们对你说的话。顺便说一句,一旦你克服了对模式的愤怒,你就会意识到它们只是用来加速开发人员之间讨论的行话。我认为这个问题不应该就此结束。从高层次上看,我的目标很清楚,我如何设计一个.Net控制台应用程序以实现灵活性,我不认为这超出了SO的范围。此外,有几个人对什么是好问题有兴趣提供详细的答案,Casper One或Peter Ritchie都没有就这个问题为什么被关闭提出任何建议。这是一个真正的问题:如果不写完整详细的答案,您将使用命令行参数来驱动不同的逻辑路径。如果明天还没有一个合适的答案,我会推一个。我以前做过很多这类的工作,并且有一些非常简洁的解决方案。您是否使用了依赖注入框架?如果您是,您可以使用它在main中调出所有任务实现,并从中提供一个简单的菜单供用户选择。@Mike:我还没有开始任何操作。就设计而言,目前这只是一张白纸。我熟悉DI/IoC。只是想知道这是不是唯一的办法。。。Thx。@EyeratedExpert:总有人很容易被冒犯或激怒。我正在寻找同行的指导和设计理念。请原谅我知道模式或提到国际奥委会。我几年前读过《模式》这本书。当心他们对你说的话。顺便说一句,一旦你克服了对模式的愤怒,你就会意识到它们只是用来加速开发人员之间讨论的行话。我认为这个问题不应该就此结束。从高层次上看,我的目标很清楚,我如何设计一个.Net控制台应用程序以实现灵活性,我不认为这超出了SO的范围。此外,有几个人对什么是好问题有兴趣提供详细的答案,Casper One或Peter Ritchie都没有就这个问题为什么被关闭提出任何建议。这是一个真正的问题:谢谢。从来没有听说过这个图书馆,但会是一个很好的考虑因素。谢谢。从来没有听说过这个图书馆,但会是一个很好的考虑因素。