1

我想知道 Boundary 的子类是否充当控制器?

4

2 回答 2

3

简而言之

不,它不能

长解释

Entity-Control-Boundary的架构方法旨在从用例中推导出设计。

边界控制的角色和职责在这个模型中是不兼容的:

  • 边界管理一组参与者和一个用例之间的交互,
  • 控件管理用例的执行并协调其他涉及的对象。

这导致以下稳健性约束:

  • 边界可以与控件相关联,但不能与实体相关联。
  • 控件可以与控件实体相关联。

根据定义,边界的子类本身就是边界类。如果它可以同时是一个控件,这意味着它可以同时与一个实体相关联,但不能与一个实体相关联,这是不可能的。所以,不,这两个角色不能由同一个班级担任。

一些细微差别

我在上面假设您使用的是 ECB 并写了“控制器”,但意思是“控制”,具有其特定的 ECB 含义。

但是您可以故意使用“控制器”来指代更一般的类责任(责任驱动设计术语)。在这种理解中,控制器只是协调其他类,而不考虑更大的架构组件。可以有一个边界控制器(即一个边界类,例如对话框控制器),它可以独立于任何特定的业务逻辑来协调其他边界类(例如对话框文本框和按钮)。这是可能的,因为控制器类的概念与 ECB-Control 类是正交的

于 2020-12-25T01:42:13.550 回答
1

子类化意味着继承。那就是子类继承自超类。在这方面,子类仍然是超类。但由于它是新的东西,它也可以继承其他任何东西。因此它可以从控制器类继承,也可以使其成为混合体。这是否有意义当然取决于。MVC 范式旨在将边界1(视图)与控制器分离。再次将它们联合起来只是与这种范式背道而驰。

1我习惯了 MVC。请参阅模型视图控制器与边界控制实体

于 2020-12-24T23:24:14.930 回答