我现在使用NetBeans作为我的首选IDE,它有一个用于UML建模的插件。在类图中,有一些模型元素称为Boundary Class
,Control Class
和Entity Class
。但是,我找不到它们的好定义,但我确实在UML类图上找到了this site。
答案 0 :(得分:176)
鲁棒性图是在用例之后和类图之前编写的。它们有助于确定用例步骤的作用。您可以使用它们确保您的用例足够强大来表示您正在构建的系统的使用要求。
他们涉及:
尽管Model-View-Controller模式用于用户界面,但实体控制边界模式(ECB)用于系统。 ECB的以下方面可以比作MVC的抽象版本,如果这有用的话:
实体 (型号)
表示系统数据的对象,通常来自域模型。
边界 (查看/服务合作者)
与系统参与者交互的对象(例如用户或外部服务)。 Windows,屏幕和菜单是与用户交互的边界的例子。
控件 (控制器)
在边界和实体之间进行调解的对象。它们充当边界元素和实体元素之间的粘合剂,实现管理各种元素及其交互所需的逻辑。重要的是要理解您可能决定在设计中实现控制器而不是对象 - 许多控制器很简单,可以实现为实体或边界类的方法。
他们的沟通有四条规则:
允许沟通:
Entity Boundary Control
Entity X X
Boundary X
Control X X X
答案 1 :(得分:18)
经常与/作为OOAD和业务建模的一部分一起使用。 Neil的定义是正确的,但它与MVC基本相同,但只是为业务抽象。 “好的总结”很好,所以我不会在这里复制,因为它不是我的工作,更详细,但与Neil的要点一致。
<强> Good summary - Conceito: Entity-Control-Boundary Pattern 强>
答案 2 :(得分:15)
这些是分析中使用的阶级刻板印象。
边界类是系统边界的边界类 - 您或其他系统与之交互的类
实体类课程是典型的商业实体,如“人”和“银行帐户”
控件类实现了一些业务逻辑或其他
答案 3 :(得分:4)
答案 4 :(得分:3)
边界控制实体模式有两个版本:
- 旧结构,在127处描述(实体作为数据模型元素,控制作为函数,边界作为应用程序接口)
- 新的对象模式
作为对象模式:
- 边界是“其他世界”的界面
- 控制任何内部逻辑(如DDD模式中的服务)
- 实体是对象的持久性服务(如DDD模式的存储库)
所有课程都有操作(参见Fowler贫血领域模型反模式)
所有这些都是MVC模式中的Model组件。规则:
- Only Boundary为“其他世界”提供服务
- Boundary只能调用Controll
- 控制可以打电话给任何人
- 实体不能呼叫任何人(!),只能被呼叫。
JZ