控制员应该与演示者交谈吗?

问题描述 投票:0回答:1

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

enter image description here

现在假设我有一个

View
,有 2 个按钮,
Dark
Light
,单击时应更改
View
的背景颜色并在屏幕上显示一些文本(文本的颜色应始终为蓝色) )。 所以我想到了这样的事情:

enter image description here

假设我必须在控制器中对两个按钮使用一种方法(可能是因为它是表单或其他什么),

button
中的
buttonClicked(button)
变量将包含有关
Dark
还是
Light
的信息按钮被按下。

现在,本例中的

Interactor
只负责检索要显示的文本,但它不需要知道任何有关背景颜色的信息。

那么,控制器应该告诉演示者选择了哪种颜色(即按钮),还是我应该将此信息转发给

Interactor
,以便它可以将其传递给
Presenter
?请记住,
Interactor
甚至不会使用此信息。

architecture software-design clean-architecture
1个回答
0
投票

无法回答您的问题“控制员是否应该与演示者交谈?”在标题中。一般来说,我可以说不应该,但架构设计中没有绝对的。也许,在某些情况或情况下,我们必须为此做出妥协。

对于您展示的案例,您似乎没有将其与状态模式一起考虑。 Clean Architecture 是一个很好的架构,但它从来不违背经典的 GoF 设计模式。 该系统可以维护一个有限状态机,

  • View和Presenter重点关注如何展示显示各个状态。
  • Interactor 和 Controller 专注于状态转换。
© www.soinside.com 2019 - 2024. All rights reserved.