我需要清洁建筑方面的演讲者吗?

Sou*_*ndo 0 microservices clean-architecture

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

小智 8

对于我来说,实现一个ControllerPresenter遵循鲍勃·马丁叔叔的清洁架构REST API文章中的确切图表是困难的部分,因为架构图示例就像一个网页,所以架构是为了替换或模式。MVCMVP

但如果是 a,Microservice则不需要 aView componentView Model。最重要的是,您不能完全分离ControllerPresenter因为您需要使用与从微服务获取输入到控制器相同的接口向微服务发送响应。

这就是为什么我真的很努力地实现Controller和的完全分离Presenter。如果是Microserviceor REST API,您需要创建一个Presenter依赖。 Controller

为此,您需要在 in 中创建一个Presenter Interface<I> 并使依赖Controller ComponentControllerPresenter Interface<I>并实现Presenter Interface<I>in Presenter Component

实际上,您可以在 Robert C. Martin 的书Clean Architecture第 8 章 OCP:开闭原理中找到此参考资料,如图8.2所示。


pla*_*ist 6

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

对于 API 服务,呈现者将执行相同的操作:服务内部数据结构和外部数据契约 (API) 之间的对话。

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