学习
STUDY
system包
发布时间: 2024年12月27日
来源: 西工大
点击数: 68
1. 设计逻辑
system 包中的 SystemResourceCollection 管理了系统中的所有实 体 。 目前, 系统实体包括 TaskPool 、ParticipantPool 、AlgoContainer 和 Schedule 。系统实体需要继承 Resource 接口, 实现 getHandler()方 法 。 出于对系统实体的保护, 所有访问系统实体的操作都应该通过 getHandler()方法,该方法返回某一个具体实体的处理句柄。其他包在 访 问 系 统 实 体 时 , 必 须 通 过 实 体 句 柄 。 系 统 实 体 句 柄
SystemResourceHandler<T>提供了两类访问方式:
1. T getResourceView(): 访问该实体的不可更改视图;
2. T getResource(): 访问该实体本身。
system 包对其他包(或代码)做出了一个约定: 当其他包(或其他代码) 使用 getResourceView()时, system 包保证系统功能正常(例如, 调度系统 、任务池管理 、参与者池管理等); 当使用 getResource()时, system 包不提供该保证。
基于 system 包提供的保证, 其他包可以放心的通过系统实体句 柄实现自己的功能 。例如,在 algorithms 包中, 算法的实现需要访问 系 统 实 体 的 各 项 信 息 , 因 此 该 包 中 所 有 操 作 仅 可 使 用getResourceView()。
2. 设计模式
system 包实现了一种类似于迭代模式的保证。具体的 UML 类图如下:
![]() |