Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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
Python CLI工具的体系结构模式_Python_Design Patterns_Command Line Interface_Restful Architecture_N Tier Architecture - Fatal编程技术网

Python CLI工具的体系结构模式

Python CLI工具的体系结构模式,python,design-patterns,command-line-interface,restful-architecture,n-tier-architecture,Python,Design Patterns,Command Line Interface,Restful Architecture,N Tier Architecture,我将用Python编写一些HTTP(REST)客户机。这将是一个没有gui的命令行界面工具。我不使用任何业务逻辑对象,不使用数据库,只使用API与服务器通信(使用Curl)。除了模型-视图-控制器之外,您能推荐我一些架构模式来实现这一点吗 注意:我并不是要求像命令或策略这样的设计模式。我只是想知道如何分离和解耦抽象层 我认为使用MVC是毫无意义的,因为它没有业务逻辑——如果我错了,请纠正我。请给我你的建议 您知道任何维护良好且代码干净的CLI项目(使用任何语言,不一定使用Python)的示例吗

我将用Python编写一些HTTP(REST)客户机。这将是一个没有gui的命令行界面工具。我不使用任何业务逻辑对象,不使用数据库,只使用API与服务器通信(使用Curl)。除了模型-视图-控制器之外,您能推荐我一些架构模式来实现这一点吗

注意:我并不是要求像命令或策略这样的设计模式。我只是想知道如何分离和解耦抽象层

我认为使用MVC是毫无意义的,因为它没有业务逻辑——如果我错了,请纠正我。请给我你的建议

您知道任何维护良好且代码干净的CLI项目(使用任何语言,不一定使用Python)的示例吗


干杯

因为你的应用程序不是很复杂,我在这里看到了两层:

  • ServerClient
    :它为远程调用提供API并隐藏任何细节。它知道如何访问HTTP服务器、提供身份验证、处理错误等。它有一些方法,如
    do\u something\u good()
    ,任何人都可以调用这些方法,而不管它是否是远程方法

  • CommandLine
    :它使用
    optpasse
    (或
    argparse
    )实现CLI,它可能支持历史记录等。该层使用
    ServerClient
    访问远程服务

这两个层彼此都不了解任何信息(只知道类似协议的已知方法列表)。它将允许您使用something而不是httprest,并且CLI仍然可以工作。或者,您可以使用批处理文件更改CLI,HTTP应该可以工作