【问题标题】:What's the relationship between the presenter and the controller in Clean Architecture?Clean Architecture中的presenter和controller是什么关系?
【发布时间】:2021-12-28 22:30:33
【问题描述】:

我正在努力消除我脑海中的一些困惑。

我想实现一个 VueJS 前端,一个后端的快速 API,在 TypeScript 中使用干净的架构实现。

presenter 是 API 吗?如果是这样,实现看起来像这样吗?:

IRequest userController = new UserController(new EntityGateway)

users.post('/', function(req, res){
   res.json(userController.create(req.body));
});

然后在Controller 我有类似的东西:

class UserController: IRequest {
     IEntityGateway _entityGateway
     
     constructor(IEntityGateway entityGateway){
          this._entityGateway = entityGateway;
     }

     create (user: User) {
          IInputBoundary createUserInteractor = new CreateUserInteractor(entityGateway)
          return createUserInteractor.create(user);
     }
}

我真的很难将我的头脑围绕在干净的架构上,所以任何帮助都将不胜感激。谢谢??????

【问题讨论】:

    标签: typescript oop architecture clean-architecture


    【解决方案1】:

    在 Clean Architecture 中,控制器从视图 (UI) 接收请求并将其转换为请求模型,然后将其传递给(用例)交互器以处理请求。

    交互者处理请求并创建一个响应模型(结果),该模型传递给演示者,演示者将其转换为响应对象(视图模型)。 Presenter 的工作是创建一个视图模型,该模型最方便视图将结果呈现给处理后的请求。

    更多详情请参考我的博文:http://www.plainionist.net/Implementing-Clean-Architecture-Controller-Presenter/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-09
      • 2019-12-13
      • 2015-11-19
      • 2021-06-08
      • 2023-01-13
      • 1970-01-01
      • 2023-03-14
      • 2020-02-03
      相关资源
      最近更新 更多