class - UML - 边界的子类可以充当 Controller 吗?

标签 class inheritance uml class-design ecb-pattern

我想知道边界的子类是否充当 Controller ?

最佳答案

简而言之

不可以

长解释

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

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

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

这会导致以下稳健性约束:

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

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

一些细微差别

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

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

关于class - UML - 边界的子类可以充当 Controller 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65441865/

相关文章:

uml - 如何在 UML 类图中描述包含的映射?

c++ - C++的一些设计问题

javascript - 使用 TypeScript 编译类的观察

actionscript-3 - AS3 : if-function doesn't listen to a boolean in another class

python - 如何将一个函数的重写一般地应用于 python 中的多个类?

inheritance - 在序言中定义 is_a 谓词?

c# - 为什么值类型继承自引用类型?

php - 自动从 PHP 类生成类图?

javascript - 未捕获的类型错误 : cannot read 'hasClass' property of undefined

python - 获取类的属性