본문 바로가기

C++ 공부

C++ 공부(클래스 다이어그램)

클래스 다이어그램 예시
참조 : http://www.nextree.co.kr/p6753/

연관 Association (A ─> B)
A 클래스에서 B 클래스를 포인터나 참조로 멤버 변수 선언하는거.
생명주기와 관련없음.

집약과 비슷하지만 클래스 간의 관계가 현실에서 연결만 있는지(Driver - Car), 아니면 전체-부분(Car - Engine)으로 관계가 있는지에 따라 연관, 집약으로 구분함.
실무에서는 보통 구분하지 않고 대부분 연관으로 본다고 함.


집약 Aggregation(A ◇─ B)
A 클래스에서 B 클래스를 포인터나 참조로 멤버 변수 선언하는거
생명주기를 관리하지 않음.

구성 Composition(A ◆─ B)
A 클래스에서 B 클래스를 멤버 변수로 선언하는거
같이 생성되고 같이 소멸됨.

상속 Generalization(A ─▷ B)
A 클래스가 B 클래스를 상속받음 B가 부모, A가 자식클래스
A(자식)는 B(부모)의 기능과 본인이 구현한 기능 둘 다 사용가능

구현 Realization(A ---▷ B)
B 클래스는 인터페이스로 순수 가상 함수 선언만
A 클래스는 인터페이스에서 선언된 함수를 구현함

의존 Dependency(A ---> B)
A 클래스에서 B 클래스를 멤버 변수로 선언하지 않고 A가 B를 함수의 매개변수로 씀.
함수의 호출 시에만 잠깐 B클래스를 잠깐 사용하는 것.