Containers 패키지는
애플리케이션의 오브젝트 모델에서 템플리트 및 비템플리트 클래스 구현 관계(연관
및 집계) 세트입니다. 각 컨테이너 클래스는 서로 다른 관계 속성에 적합합니다.
일부 컨테이너(예: OMStack, OMQueue 및 OMHeap)는
관계 구현에 사용되지 않습니다. 프레임워크에서 내부적으로 사용되며,
클라이언트 애플리케이션에서 직접 사용할 수도 있습니다.
OXF 컨테이너 클래스는 오브젝트 모델에서
관계에 대한 기본 구현을 제공합니다. IBM® Rational® Rhapsody® 코드
생성기는 "기본(native)" 컨테이너 라이브러리 대신 규격품 컨테이너 라이브러리(예:
RogueWave™, MFC 또는 STL(Standard Template Library))를 사용하도록
매개변수화할 수 있습니다. STL 컨테이너를 사용하는 관계 구현은
제품에 의해 즉각적으로 지원됩니다.
Rational Rhapsody는
컨테이너를 사용하여 오브젝트 사이의 to-many 관계를 구현합니다. 여기에는
하나의 오브젝트 대 많은 오브젝트 또는 많은 오브젝트 대 많은 오브젝트의
관계가 포함됩니다. Rational Rhapsody는
포함된 오브젝트 및 클래스의 다중성, 액세스 및 순서 지정을 기반으로
다양한 관계의 동작을 구현하기 위해 자동으로 적절한 컨테이너를 선택합니다.
일반적인 컨테이너로는 목록, 스택, 힙, 정적 배열, 콜렉션 및
맵이 있으며. 각각에 고유한 동작 세트가 있습니다. 예를 들어, 배열에서는 랜덤 액세스가
허용되는 반면 목록에서는 허용되지 않습니다.
OXF는 다음 컨테이너 유형을 지원합니다.
- OMAbstractContainer -
추상, type-safe 컨테이너
- OMCollection -
Type-safe, 동적으로 크기 조정되는
배열. 자세한 정보는 OMCollection 클래스의 내용을 참조하십시오.
- OMHeap -
Type-safe, 고정 크기
힙 구현. 자세한 정보는 OMHeap 클래스의 내용을 참조하십시오.
- OMIterator -
OMAbstractContainer(및 파생된 컨테이너)에 대한 type-safe
반복자. 자세한 정보는 OMIterator 클래스의 내용을 참조하십시오.
- OMList -
Type-safe, 링크 목록.
자세한 정보는 OMListItem 클래스의 내용을 참조하십시오.
- OMMap -
균형 이진 트리(log(n) 검색 시간)를 기반으로 하는
type-safe 맵. 자세한 정보는 OMMap 클래스의 내용을 참조하십시오.
- OMQueue -
Type-safe, 동적으로 크기 조정되는
큐. 이 클래스는 순환 배열에서 구현되고 선입선출(FIFO) 알고리즘을
구현합니다. 자세한 정보는 OMQueue 클래스의 내용을 참조하십시오.
- OMString -
문자열 클래스. 자세한 정보는 OMString 클래스의 내용을 참조하십시오.
- OMStack -
LIFO(후입 선출) 알고리즘을 구현하는
type-safe 스택. 자세한 정보는 OMStack 클래스의 내용을 참조하십시오.
- OMStaticArray -
Type-safe, 고정 크기 배열. 자세한 정보는 OMStaticArray 클래스의 내용을 참조하십시오.
이 컨테이너 외에,
OXF는 템플리트로 구현되지 않는 컨테이너인 omu* 컨테이너를
지원합니다. 템플리트가 없는
컨테이너를 사용하면 생성된 코드의 크기도 상당히 줄어듭니다.
OMU* 컨테이너는
다음과 같습니다.
- OMUAbstractContainer -
안전하지 못한(typeless) 추상 컨테이너.
파생된 모든 컨테이너는 void*를 보유합니다.
자세한 정보는 OMUAbstractContainer 클래스의 내용을 참조하십시오.
- OMUIterator -
OMUAbstractContainer에 대한 반복자 및
파생된 컨테이너. 자세한 정보는 OMUIterator 클래스의 내용을 참조하십시오.
- OMUList -
Typeless 목록. 자세한 정보는 OMUList 클래스의 내용을 참조하십시오.
- OMUCollection -
Typeless, 동적으로 크기 조정되는
배열. 자세한 정보는 OMUCollection 클래스의 내용을 참조하십시오.
- OMUMap -
Typeless 맵. 자세한 정보는 OMUMap 클래스의 내용을 참조하십시오.