我想知道 Boundary 的子类是否充当控制器?
问问题
54 次
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 回答