我正在做一个大学项目,我需要在学校注册系统中创建一个类图。在那里,我添加了Student
类,registrationUI
边界类和registrationController
控制器类:
我创建了一个名为systemController
的独立控制器类来执行其他任务,例如计算账单等...
我是否可以将systemController
课程加入registrationUI
课程。
答案 0 :(得分:1)
ECB架构模式
了解ECB架构模式originates from the use case模型可能很有用:
RegistrationControler
用于用例"注册学生")。控制器链接到用例中涉及的所有entite(可以是几个,例如Registration
,Student
和Course
)RegistrationUI
为注册管理员提供用户界面,如果是自助服务系统则为学生提供用户界面。因此,几个边界可以链接到控制器(例如,如果涉及第二方参与者,例如第三方系统)。 Student
)。因此,实体可以链接到其他几个相关实体(例如Registration
中Student
的{{1}}记录一致性检查
在this article或that article的底部,您会看到一个短矩阵,显示实体,控件和边界之间的可能关系。
根据这个逻辑,实体[永远不应该直接连接到边界。因此,Course
和Access
之间的Student
关系不是一个好主意(ECB is not MVC)。
一个边界和两个控制器?
如果您遵循Jacobson的OOSE将用例分解为边界和控制器的逻辑,或者如果应用基本step by step robustness analysis in a use case driven modeling方法,则您需要识别控制器(用例)并创建actor和用例之间每个链接的边界。乍一看,人们可以认为边界最多可以链接到一个控制器。
但是你还有"包括"用例或"扩展"用例。它们不直接连接到actor,至少在图形中没有明确说明。这意味着你可以很好地拥有一个与几个控制器相关的边界。在this tutorial中,您有一个非常好的ATM示例,其中包含一个边界和几个ATM事务。在上面的DDJ文章链接中,您还有一个类似的示例。
P.S。:就我个人而言,我不太确定你想用RegistrationUI
实现什么。我建议你考虑一下它的作用和名称。看看它的内容,我可以想象它是systemController
的一部分。我还可以想象它是一个调度员启动其他控制器。