Architecture 干净的架构-控制器是否应该与演示者对话?

Architecture 干净的架构-控制器是否应该与演示者对话?,architecture,software-design,Architecture,Software Design,在Robert Martin的文章中,假设我有这个简化版本(没有显示模型、网关、边界等其他内容): 现在让我们假设我有一个视图,有两个按钮,暗和亮,当单击时,应该更改视图的背景色,并在屏幕上显示一些文本(文本的颜色应该始终为蓝色)。 所以我想到了这样的事情: 这里假设我必须在控制器中为两个按钮使用一种方法(可能是因为它是一个表单或其他什么),则buttonClicked(button)中的按钮变量将包含有关按下暗按钮或亮按钮的信息 现在,在本例中,interactior只负责检索要显示的文本

在Robert Martin的文章中,假设我有这个简化版本(没有显示模型、网关、边界等其他内容):

现在让我们假设我有一个
视图
,有两个按钮,
,当单击时,应该更改
视图
的背景色,并在屏幕上显示一些文本(文本的颜色应该始终为蓝色)。 所以我想到了这样的事情:

这里假设我必须在控制器中为两个按钮使用一种方法(可能是因为它是一个表单或其他什么),则
buttonClicked(button)
中的
按钮变量将包含有关按下
暗按钮或
亮按钮的信息

现在,在本例中,
interactior
只负责检索要显示的文本,但它不需要知道任何关于背景颜色的信息


那么,控制器是否应该告诉演示者选择了哪种颜色(即按钮),或者我是否应该将此信息转发给
交互者
,以便它能够将其传递给
演示者
?请记住,
交互者
甚至不会使用此信息。

@ctietze您对此有何看法?我认为您在此处绘制的依赖关系圈违反了clean architectures的主要思想。您的交互者不应该知道有关控制器、演示者或视图的任何信息。这就是这些典型的圆形图纸在谈论清洁建筑时的含义。看见