我正在做一个大学项目,我需要为学校注册系统创建一个类图。在那里我包含了一个Student
类、一个registrationUI
边界类和一个registrationController
控制器类:
我创建了一个单独的控制器类,调用systemController
它来执行其他任务,例如计算账单等......
我在问是否可以与systemController
班级一起参加registrationUI
班级。
我正在做一个大学项目,我需要为学校注册系统创建一个类图。在那里我包含了一个Student
类、一个registrationUI
边界类和一个registrationController
控制器类:
我创建了一个单独的控制器类,调用systemController
它来执行其他任务,例如计算账单等......
我在问是否可以与systemController
班级一起参加registrationUI
班级。
欧洲央行架构模式
认识到ECB 架构模式源自用例模型是很有用的:
RegistrationControler
,用例“注册学生”)。控制器链接到用例中涉及的所有实体(可以是多个,Registration
例如Student
和Course
)RegistrationUI
,向注册管理器提供用户界面,如果是自助服务系统,则向学生提供用户界面)。因此,可以将多个边界链接到一个控制器(例如,如果涉及辅助参与者,例如第三方系统)。 Student
)。因此,一个实体可以链接到其他几个相关实体(例如in a 的Registration
记录) Student
Course
一致性检查
在本文或那篇文章的底部,您将看到一个简短的矩阵,显示实体、控件和边界之间的可能关系。
根据这个逻辑,实体[永远不应该直接连接到边界。所以你之间的Access
关系Student
和RegistrationUI
不是一个好主意(ECB 不是 MVC)。
一个边界和两个控制器?
如果您遵循 Jacobson 将用例分解为边界和控制器的 OOSE 逻辑,或者如果在用例驱动的建模方法中应用基本的逐步稳健性分析,您将识别控制器(用例)并为每个控制器创建边界参与者和用例之间的联系。所以乍一看,人们可能会认为一个边界最多可以链接到一个控制器。
但是您也有“包含”用例或“扩展”用例。这些与演员没有直接联系,至少在图形中没有明确连接。这意味着您很可能拥有与多个控制器相关的一个边界。在本教程中,您有一个非常好的 ATM 示例,其中包含一个边界和多个 ATM 交易。在上面的 DDJ 文章链接中,您也有一个类似的示例。
PS:就个人而言,我不太确定你想用systemController
. 我建议你考虑一下它的作用和它的名字。查看它的内容,我可以想象它是RegistrationController
. Bt 我也可以想象它是一个调度程序启动其他控制器。