UML - 边界的子类可以充当控制器吗?

UML - Can subclass of a Boundary acts as controller?

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

Subclassing表示继承。即subclass继承自superclass。在这方面,subclass 仍然是 superclass 的样子。但由于它是新事物,它也可以继承其他任何东西。因此它可能继承自控制器 class 并使其成为混合体。这是否有意义当然取决于。 MVC 范式旨在将边界1(视图)与控制器分开。再次将他们联合起来只是在与这种范式背道而驰。

1我习惯了 MVC。参见 Model View Controller vs Boundary Control Entity

简而言之

不可以

详细解释

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

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

  • 边界 管理一组参与者与用例之间的交互,
  • 控制 管理用例的执行并协调其他相关对象。

这导致以下稳健性约束:

  • 边界可以与控制关联,但不能与实体[=53关联=].
  • 一个control可以与一个control和一个entity.[=56相关联=]

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

一些细微差别

我在上面假设您使用的是 ECB 并写了 « controller » 但意思是 « control » 具有其特定的 ECB 含义。

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

正交