【问题标题】:Architectual pattern for CLI toolCLI 工具的架构模式
【发布时间】:2016-01-26 00:05:38
【问题描述】:

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

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

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

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

干杯

【问题讨论】:

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


    【解决方案1】:

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

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

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

    两层对彼此一无所知(只有协议,如已知方法列表)。它将允许您使用 somethign 而不是 HTTP Rest 并且 CLI 仍然可以工作。或者您可以使用批处理文件更改 CLI,并且 HTTP 应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多