首页 > 解决方案 > UML - 边界的子类可以充当控制器吗?

问题描述

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

标签: classinheritanceumlclass-designecb-pattern

解决方案


简而言之

不,它不能

长解释

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

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

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

这导致以下稳健性约束:

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

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

一些细微差别

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

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


推荐阅读