我需要清洁建筑演示者吗?

我正在尝试在微服务中实现Clean Architecture,该服务返回JSON响应。我需要演示者来呈现响应DTO还是将其发送回客户端

onion_chan 回答:我需要清洁建筑演示者吗?

为了回答您的问题,我必须澄清两点: 干净的体系结构是一种高级设计模式,提倡清晰地分离关注点。演示者是软件设计模式Model-View-Presenter的组成部分。

我想DTO来自其他服务,在这种情况下,是的。如果要实现Clean Architecture,则不应将该DTO暴露给客户端。

,

在Clean Architecture中,演示者是将用例交互器的响应模型转换为最便于视图使用的响应对象的组件(例如,它可以将浮点数格式化为具有正确精度的字符串)。

在使用API​​服务的情况下,演示者将执行相同的操作:服务内部数据结构与外部数据合约(API)之间的对话。

对于简单服务,内部和外部DTO可能相同。在这种情况下,您可以先省略演示者,然后在需要时进行介绍。

,

这是我难以完成ControllerPresenter的{​​{1}}和REST API的工作,这要遵循Bob Martin叔叔Clean Architecture的文章中的确切图表,因为架构图该示例就像一个网页,因此该体系结构用于替换MVCMVP模式。

但是如果是Microservice,则不需要View componentView Model。 最重要的是, 您不能完全分离ControllerPresenter ,因为您需要使用相同的请求将响应发送给微服务用于从微服务获取输入到Controller的接口。

这就是为什么我真的很难实现ControllerPresenter的完全分离。对于MicroserviceREST API,您需要根据{em> Presenter来制作Controller

为此,您需要在Presenter Interface<I>内创建Controller Component ,并使Controller依赖于{ {1}},并在Presenter Interface<I>中实现Presenter Interface<I>

您实际上可以在Robert C. Martin Presenter Component的书的第8章OCP:“开放原则”中的 图8.2 中找到该参考。 >。

本文链接:https://www.f2er.com/2851341.html

大家都在问