CLI 工具的架构模式

Architectual pattern for CLI tool

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

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

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

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

干杯

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

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

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

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