边界类、控制类和实体类

UML中类有三种主要的版型:边界类、控制类和实体类。引入边界类、控制类及实体类的概念有助于分析和设计人员确定系统中的类。
边界类位于系统与外界的交界处,窗体、报表、以及表示通讯协议的类、直接与外部设备交互的类、直接与外部系统交互的类等都是边界类。通过用例图可以确定需要的边界类,每个Actor/Use Case对至少要一个边界类,但并非每个Actor/Use Case对要唯一的边界类。
实体类保存要放进持久存储体的信息。持久存储体就是数据库、文件等可以永久存储数据的介质。实体类可以通过事件流和交互图发现。通常每个实体类在数据库中有相应的表,实体类中的属性对应数据库表中的字段。
控制类是控制其他类工作的类。每个用例通常有一个控制类,控制用例中的事件顺序,控制类也可以在多个用例间共用。其他类并不向控制类发送很多消息,而是由控制类发出很多消息。
例如在考试系统中 当学生在考试时 ,学生与试卷交互 那么 学生和试卷都是实体类,而考试时间 ,规则,分数都是边界类; 当考试完了将试卷提交给试卷保管者 ,则 试卷则成了边界类.
状态图和时序图 区别在于 时序图体现时间顺序的正常情况. 而状态图则体现所以可能的交互.例如 搜索 删除 增加 修改 不太可能受时间约束 就用状态图表示

### 边界类 边界类用于系统与角色之间的交互,包括从用户外部系统接收信息请求[^1]。这组件为依赖于角色的系统部分建模,解释汇集系统边界需求,使得用户界面的变化通常被隔离在一个或多个边界类上。边界类经常代表窗口、表单、交互界面等,它描述交互所能得到的结果而不是交互的具体物理实现。边界类的例子有主窗体、查询窗体、表单录入窗体、自动弹出窗体、物资查询窗体、库存事物处理查询窗体等。 ```python class BoundaryClassExample: def __init__(self, name): self.name = name def display(self): print(f"Displaying {self.name}") ``` ### 实体类 实体类是用于描述数据结构的。它们主要负责存储管理应用的数据模型,确保数据的一致性持久性。实体类一般对应数据库中的表格或其他形式的数据源,并提供访问操作这些数据的方法。这有助于保持业务逻辑清晰分离,使代码更易于维护发展。 ```sql CREATE TABLE EntityTable ( id INT PRIMARY KEY, attribute VARCHAR(255), ); ``` ### 控制 控制可以认为是处理业务逻辑、控制业务流程的。当业务主角通过边界类来执行用例的时候,会产生一个控制对象,在用例被执行完后,该控制对象会被销毁[^3]。这种短暂的存在周期意味着控制专注于协调其他两(即边界类实体类),以完成特定的任务或工作流阶段,而不保留状态信息。 ```java public class ControlClass { private final BoundaryInterface boundary; public ControlClass(BoundaryInterface boundary){ this.boundary = boundary; } public void executeUseCase(){ // Execute use case logic here. System.out.println("Executing Use Case"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值