我想构建一个简单的C#控制台应用程序,它可以从命令行运行,并且可以执行不同的任务。什么是灵活构建这个的最佳方法?我可以看到如何使用策略模式构建各种任务。 Main()函数只是一个巨大的开关吗?人们通常如何实现这个一般概念?
更新:我在git / hg上看起来“风格化”或类似,但可能更少动作。用户可以在命令行工作,发出带有相关参数的任务,例如:git add -f
。因此,以此为例,Git / Mercurial允许扩展。我实际上正在寻找解决这个问题的各种一般方法,以及方法的好处/权衡。没有一种设计是完美的。
答案 0 :(得分:7)
如果您有复杂的命令行参数,请首先使用命令行解析库http://commandline.codeplex.com/。然后使用command pattern并针对不同的操作创建一个模型(或控制系统的类)。例如,如果您有“添加”命令,请创建一个“AddCommand”类,该类调用模型上的相应方法和属性。