CLI工具的架构模式

时间:2015-10-26 18:50:30

标签: python design-patterns command-line-interface restful-architecture n-tier-architecture

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

注意:我不是要求设计模式,如命令或策略。我只是想知道如何隔离和解耦抽象层。

我认为使用MVC对于没有业务逻辑这一事实毫无意义 - 如果我错了,请纠正我。请给我你的建议!

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

干杯

1 个答案:

答案 0 :(得分:0)

由于您的应用不是很复杂,我在这里看到2层:

  • ServerClient:它为远程调用提供API并隐藏任何详细信息。它知道如何访问HTTP服务器,提供身份验证,处理错误等。它有像do_something_good()这样的方法,任何人都可以调用它,如果是远程方法则不关心。

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

两个层都不知道彼此之间的任何事情(只有像已知方法列表这样的协议)。它将允许您使用somethign而不是HTTP Rest,CLI仍然可以工作。或者您可以使用批处理文件更改CLI,HTTP应该可以正常工作。