Skip to main content
 首页 » 编程设计

design-patterns之处理命令行参数的设计模式是什么

2024年06月03日143mq0036

如果您正在编写一个可从命令行执行的程序,您通常希望为用户提供多个选项或标志,以及可能的多个参数。我已经多次遇到这个问题,但是是否有某种设计模式可以循环参数并调用适当的处理函数?

考虑:

myprogram -f filename -d directory -r regex 

使用适合您的语言的任何内置函数检索参数后,如何组织处理程序函数? (欢迎特定语言的答案,如果这有助于您阐明答案)

请您参考如下方法:

我认为以下答案更符合您正在寻找的内容:

您应该考虑应用模板模式(“设计模式”[Gamma,等人]中的模板方法)

简而言之,它的整体处理如下所示:

If the arguments to the program are valid then 
    Do necessary pre-processing 
    For every line in the input 
        Do necessary input processing 
    Do necessary post-processing 
Otherwise 
    Show the user a friendly usage message 

简而言之,实现一个 ConsoleEngineBase 类,该类具有以下方法:

PreProcess() 
ProcessLine() 
PostProcess() 
Usage() 
Main() 

然后创建一个机箱,实例化 ConsoleEngine() 实例并发送 Main() 消息来启动它。

要查看如何将其应用于控制台或命令行程序的好示例,请查看以下链接: http://msdn.microsoft.com/en-us/magazine/cc164014.aspx

该示例是用 C# 编写的,但这些想法可以在任何其他环境中轻松实现。

您会将 GetOpt() 视为适合参数处理(预处理)的部分。

希望这有帮助。