清洁架构 - 如何在MVC中实现演示者

时间:2018-04-28 14:56:41

标签: c# clean-architecture

根据Bob叔叔的Clean Architecture,用例交互器调用presenter的实际实现(在DIP之后注入)来处理响应/显示。

如何使用C#(ASP.NET Core MVC)完成此操作?

应该向控制器注入一个C#接口用例,它暴露了一个C#接口回调?

2 个答案:

答案 0 :(得分:1)

在干净的架构中,演示者和控制器是不同的类。正如您已经描述的那样,演示者应该注入Interactor。演示者将视图模型中的Interactor响应进行音乐会,然后传递给视图。

在asp.net MVC中,最后一步涉及控制器,这不是100%的干净架构所预期的,而是框架的工作原理。因此,当选择asp.net MVC时,这个微小的妥协。

有关此特定问题的更多详情,请参阅我的帖子: https://plainionist.github.io/Implementing-Clean-Architecture-Controller-Presenter/ https://plainionist.github.io/Implementing-Clean-Architecture-AspNet/

答案 1 :(得分:1)

有些人对于记录实体边界交互器(EBI)感兴趣,正如Bob叔叔所描述的那样。有一个master thesis和一个更务实但(在撰写本文时)未完成的文档针对程序员,你可以找到here。这个想法也是Object-Oriented Software Engineering A Use Case Driven Approach(被称为实体接口控制器)的书的一部分Ivar Jacobson,其中Bob叔叔至少在他的一次谈话和一篇名为Screaming Architecture的博客文章中推荐自己。

叔叔鲍勃自己给了talk,他在那里解释了他认为网络开发的错误以及为什么他认为不同的模型会更好(*):

  

网络的所有复杂性的重要性;网络是一个   详情。它不是我们应用程序的本质,它是一个IO通道。   为什么我们要围绕IO渠道构建我们的应用程序?

他还就如何构建应用程序later on提供了建议。