在UML类图中,什么是边界类,控件类和实体类?

Tho*_*ens 79 uml class-diagram

我现在使用NetBeans作为我的选择IDE,它有一个用于UML建模的插件.在类图,有被称为模型元素Boundary Class,Control ClassEntity Class.但是,我找不到它们的好定义,但我确实在UML Class Diagrams上找到了这个网站.

Pup*_*Pup 183

在用例之后和类图之前编写健壮性图.它们有助于确定用例步骤的作用.您可以使用它们来确保您的用例足够强大,以表示您正在构建的系统的使用要求.

他们涉及:

  1. 演员
  2. 用例
  3. 实体
  4. 边界
  5. 控制

模型-视图-控制器模式用于用户界面,实体-控制-边界模式(ECB)用于系统.ECB的以下方面可以比作MVC的抽象版本,如果这有用:

UML表示法

实体 (模型)
表示系统数据的对象,通常来自域模型.

边界 (视图/服务协作者)
与系统参与者(例如用户外部服务)交互的对象.Windows,屏幕和菜单是与用户交互的边界的示例.

控件 (控制器)
在边界和实体之间进行调解的对象.它们充当边界元素和实体元素之间的粘合剂,实现管理各种元素及其交互所需的逻辑.重要的是要了解您可能决定在设计中实现控制器而不是对象 - 许多控制器很简单,可以实现为实体或边界类的方法.

他们的沟通有四条规则:

  1. 演员只能与边界对象交谈.
  2. 边界对象只能与控制器和演员对话.
  3. 实体对象只能与控制器通信.
  4. 控制器可以与边界对象和实体对象以及其他控制器进行通信,但不能与actor进行通信

沟通允许:

         Entity    Boundary   Control
Entity     X                     X
Boundary                         X
Control    X          X          X
Run Code Online (Sandbox Code Playgroud)

  • 从评论来看,这个答案并没有帮助人们理解"实体边界控制"和MVC之间的区别.其中之一是边界不是视图; 它是系统的一个元素,用于管理与设计区域外的元素的通信,无论该区域是什么.例如,系统内的PayPal REST API外观可能是边界元素.此外,您的子系统可能有自己的边界.将其与View相比较,View从任何角度来看都是一个View,并始终面向用户. (11认同)
  • 这个答案确实包括说同样的话,实际上是:“边界:与系统参与者交互的对象(例如,用户**或外部服务**)”。无论如何,我的观点是它们是不同的:ECB并不是MVC的“简化”。 (2认同)

Ted*_*son 20

经常与/作为OOAD和业务建模的一部分一起使用.Neil的定义是正确的,但它与MVC基本相同,但只是为业务抽象."好的总结"很好,所以我不会在这里复制,因为它不是我的工作,更详细,但与Neil的要点内联.

好总结 - Conceito:实体控制边界模式

OOAD

  • 但是MVC仅用于视图层。 (3认同)
  • 答案应包含信息,而不仅仅是链接.不幸的是,链接已经死了. (2认同)
  • @ ted-johnson是否有机会更新链接?谢谢! (2认同)

小智 16

这些是分析中使用的类定型.

  • 边界类是系统边界的边界类 - 您或其他系统与之交互的类

  • 实体类类是典型的商业实体,如"人"和"银行账户"

  • 控制类实现一些业务逻辑或其他


小智 5

实际上,鲁棒性图(或有时称为分析图)只是专门的类图。它们是 UML 的一部分,并且从一开始就是如此(参见 Jacobson 的书《统一软件开发过程》——“Three Amigos”系列书籍的一部分)。上述书在第 183-185 页对这三个类有很好的定义。


小智 5

边界控制实体模式有两个版本:
- 旧结构,在 127 描述(实体作为数据模型元素,控制作为功能,边界作为应用程序接口)
- 新对象模式


作为对象模式:
- 边界是“的接口”另一个世界”
- 任何内部逻辑中的控制(如 DDD 模式中的服务)
- 实体是对象的持久性服务(如 DDD 模式中的存储库)。
所有类都有操作(参见 Fowler 贫血域模型反模式)
,它们都是 MVC 模式中的模型组件。规则:
- 只有 Boundary 为“另一个世界”提供服务
- Boundary 只能呼叫 Controll
- Control 可以呼叫任何人
- 实体不能呼叫任何人(!),只能被呼叫。

jz