UML class 관계 표기법
Association (연관) - 지속적인 강한 관계
양방향
class A {
private B b
}
class B {
private A a
}
서로에 대한 참조 멤버 변수를 갖음
단방향
class A {
private B instance[16];
}
class B {}
A가 B 객체의 instance라는 이름의 참조 멤버 변수 16개를 갖음.
16 대신 *일 경우 vector나 list등을 의미할 수 있다.
Recursive Association (재귀)
class A {
private A a;
}
자기자신을 참조할 수 있는 경우
Inner Class (내부 클래스)
class A {
class B {}
}
클래스 안의 클래스
Association Class (연관 클래스)
classs A {
private Vector instance;
}
A는 B를 Vector에 담아 표현함을 나타낸다.
Association Class 보단 아래처럼 스테레오 타입의 사용이 더 낫다.
Association Qualifier (연관 한정사)
class A {
private int id;
public string getName() {
B b = DB.getB(id);
return e.getName();
}
}
class B {}
A는 B에 id를 통해 접근함을 표현
키나 토큰을 통해 연관을 나타낼때 사용
Dependency (의존)
class A {
void method(B b) {
}
}
class B {}
일시적인 약한 관계
Aggregation (집합)
class A {
private Vector<B> vectorB;
}
class B {}
A가 B의 집합을 갖으나 생명주기는 이질적인 경우.
(A가 소멸한다고 해서 B도 소멸하진 않는다.)
UML2에서 제외됨. (Association(연관)와 차이 없는 모습 때문에..)
Composition (합성)
class A {
private Vector<B> vectorB;
}
class B {}
A가 B의 집합을 갖고 생명주기도 동일하다.
(A, B가 항상 같이 소멸한다.)
Generalization (일반화 : 상속)
class A {}
class B : public A {} //Java는 extends A
B가 A를 상속
Realization (실체화 : 구현)
class A {}
class B : public A {} //Java는 implement A
B가 A 인터페이스를 구현
'C++' 카테고리의 다른 글
CRITICAL_SECTION을 사용한 Lock 클래스 예제 (0) | 2011.01.07 |
---|---|
Design Patterns (디자인 패턴) (0) | 2011.01.06 |
POSA (Pattern-Oriented Software Architecture) (0) | 2011.01.03 |
ACE (ADAPTIVE Communication Environment) (0) | 2011.01.03 |
ActiveX Control Test Container : Visual Studio 2008 (0) | 2010.12.09 |
[MFC] CDaoDatabase : DAO (Data Access Object) (2) | 2010.12.09 |
[MFC] 다른 윈도우 찾기 (0) | 2010.12.09 |
[MFC] 메뉴 제거, 타이틀 제거, 캡션 변경. 창 크기 설정 방법 (0) | 2010.12.09 |