容器包是应用程序的对象模型中的一组模板和非模板类实现关系(关联和聚集)。
每个容器类都适用于不同的关系属性。
部分容器(例如:OMStack, OMQueue 和 OMHeap)并非用于关系实现。它们在框架内部使用,且还可由客户机应用程序直接使用。
OXF 容器类为对象模型中的关系提供了缺省实现。IBM® Rational® Rhapsody® 代码生成器可以参数化,以使用现成的容器库(例如:RogueWave™、MFC 或标准模板库 STL),以代替其“本身的”容器库。本产品即开即用地支持使用 STL 容器的关系实现。
Rational Rhapsody 使用容器在对象之间实现对多关系。这包括一个对象与多个对象的关系以及多个对象与多个对象的关系。Rational Rhapsody 根据所涉及的多重性、存取和类及对象排序,自动选择相应容器来实现各种关系的行为。典型的容器有列表、堆栈、堆、静态数组、集合与映射,它们每个都有自己的行为集。例如,数组允许随机存取,而列表不允许。
OXF 支持以下容器类型:
- OMAbstractContainer - 抽象的类型安全容器。
- OMCollection - 类型安全,动态调整大小的数组。请参阅OMCollection 类以了解更多信息。
- OMHeap - 类型安全,固定大小的堆实现。请参阅OMHeap 类以了解更多信息。
- OMIterator - 类型安全,通过 OMAbstractContainer(和派生的容器)的迭代器。
请参阅OMIterator 类以了解更多信息。
- OMList - 类型安全的链接列表。
请参阅OMListItem 类以了解更多信息。
- OMMap - 基于平衡二进制树(log(n) 搜索时间)的类型安全映射。请参阅OMMap 类以了解更多信息。
- OMQueue - 类型安全,动态调整大小的队列。它是在循环数组上实现的,并且实现 FIFO(先进先出)算法。请参阅OMQueue 类以了解更多信息。
- OMString - 字符串类。请参阅OMString 类以了解更多信息。
- OMStack - 实现 LIFO(后进先出)算法的类型安全堆栈。请参阅OMStack 类以了解更多信息。
- OMStaticArray - 类型安全,固定大小的数组。请参阅OMStaticArray 类以了解更多信息。
除了这些容器以外,OXF 还支持 omu* 容器(该容器不使用模板实现)。使用无模板的容器可大量减少生成的代码的大小。
OMU* 容器如下所示: