1

我正在做一个大学项目,我需要为学校注册系统创建一个类图。在那里我包含了一个Student类、一个registrationUI边界类和一个registrationController控制器类:

在此处输入图像描述

我创建了一个单独的控制器类,调用systemController它来执行其他任务,例如计算账单等......

我在问是否可以与systemController班级一起参加registrationUI班级。

4

1 回答 1

2

欧洲央行架构模式

认识到ECB 架构模式源自用例模型是很有用的:

  • 一个控制器代表一个用例(例如RegistrationControler,用例“注册学生”)。控制器链接到用例中涉及的所有实体(可以是多个,Registration例如StudentCourse
  • 边界将用例与所涉及的外部参与者联系起来(例如RegistrationUI,向注册管理器提供用户界面,如果是自助服务系统,则向学生提供用户界面)。因此,可以将多个边界链接到一个控制器(例如,如果涉及辅助参与者,例如第三方系统)。
  • 实体代表领域对象(例如Student)。因此,一个实体可以链接到其他几个相关实体(例如in a 的Registration记录) StudentCourse

一致性检查

在本文或那篇文章的底部,看到一个简短的矩阵,显示实体、控件和边界之间的可能关系。

根据这个逻辑,实体[永远不应该直接连接到边界。所以你之间的Access关系StudentRegistrationUI不是一个好主意(ECB 不是 MVC)。

一个边界和两个控制器?

如果您遵循 Jacobson 将用例分解为边界和控制器的 OOSE 逻辑,或者如果在用例驱动的建模方法中应用基本的逐步稳健性分析,您将识别控制器(用例)并为每个控制器创建边界参与者和用例之间的联系。所以乍一看,人们可能会认为一个边界最多可以链接到一个控制器。

但是您也有“包含”用例或“扩展”用例。这些与演员没有直接联系,至少在图形中没有明确连接。这意味着您很可能拥有与多个控制器相关的一个边界。在本教程中,您有一个非常好的 ATM 示例,其中包含一个边界和多个 ATM 交易。在上面的 DDJ 文章链接中,您也有一个类似的示例。

PS:就个人而言,我不太确定你想用systemController. 我建议你考虑一下它的作用和它的名字。查看它的内容,我可以想象它是RegistrationController. Bt 我也可以想象它是一个调度程序启动其他控制器。

于 2016-11-24T22:19:02.567 回答