class - UML - 边界的子类可以充当控制器吗?
问题描述
我想知道 Boundary 的子类是否充当控制器?
解决方案
简而言之
不,它不能
长解释
Entity-Control-Boundary的架构方法旨在从用例中推导出设计。
边界和控制的角色和职责在这个模型中是不兼容的:
- 边界管理一组参与者和一个用例之间的交互,
- 控件管理用例的执行并协调其他涉及的对象。
这导致以下稳健性约束:
- 边界可以与控件相关联,但不能与实体相关联。
- 控件可以与控件和实体相关联。
根据定义,边界的子类本身就是边界类。如果它可以同时是一个控件,这意味着它可以同时与一个实体相关联,但不能与一个实体相关联,这是不可能的。所以,不,这两个角色不能由同一个班级担任。
一些细微差别
我在上面假设您使用的是 ECB 并写了“控制器”,但意思是“控制”,具有其特定的 ECB 含义。
但是您可以故意使用“控制器”来指代更一般的类责任(责任驱动设计术语)。在这种理解中,控制器只是协调其他类,而不考虑更大的架构组件。可以有一个边界控制器(即一个边界类,例如对话框控制器),它可以独立于任何特定的业务逻辑来协调其他边界类(例如对话框文本框和按钮)。这是可能的,因为控制器类的概念与 ECB-Control 类是正交的
推荐阅读
- javascript - D3.js svg 不绘制地图
- python - tfa.seq2seq.BeamSearchDecoder 输出空时间步输出
- javascript - 无需获取数据进行授权即可将数据添加到 Cloud Firestore
- monetdb - 调试 mserver5 的问题
- google-kubernetes-engine - GKE Sticky-Sessions + 自动扩展,每个会话使用大量内存
- vim - Vim 删除所有只有一个字母的行
- swiftui - 在 SwiftUI 中移动滚动视图时如何使文本变小
- javascript - React Material-UI Autocomplete - 重置下拉列表
- html - 如何让我的图像位于导航栏下方?
- java - 随机时间和日期