클래스 다이어그램
접근 제어자
public + 어떤 클래스의 객체에서든 접근 가능
private - 이 클래스에서 생성된 객체들만 접근 가능
protected # 동일 패키지에 있거나 상속 관계의 하위 클래스 객체들만 접근 가능
package ~ 동일 패키지에 있는 클래스의 객체들만 접근 가능
관계
연관 관계 (association)
- 클래스들이 개념상 서로 연결되었음을 나타낸다. 실선, 화살표로 표시
- 보통 한 클래스가 다른 클래스에서 제공하는 기능을 사용하는 상황일때 표시
- 양방햔 관계 일때 화살표를 사용하지 않음
- 단방향 -> 한 객체만이 다른 객체의 존재를 인식
- 양방향 -> 양 객체들 모두 서로의 존재를 인식
- 멤버변수가 양 쪽에 있으면 양방향 관계
- 양방향 관계이므로 각 클래스에서 서로를 참조할 수 있는 속성을 정의
- 다대다이므로 Vector 구조를 이용
일반화 관계 (generalization)
- 객체지향에서의 상속관계
- 한 클래스가 다른 클래스를 포함하는 상위 개념, IS - A 관계
- 속이 빈 화살표를 사용해 표시
- 두 클래스 사이에 "is a kind of 관계"가 성립할 떄 사용
집합관계 (composition, aggregation)
- 클래스들 사이의 전체, 부분 같은 관계를 나타냄
- 집약관계, 합성 관계가 존재
- 집약관계 -> 한 객체가 다른 객체를 포함하는 것을 나타냄
-> 전체, 부분과의 관계로 전체를 가리키는 클래스 방향에 빈 마름모로 표시
- Computer 객체가 사라져도 부품 객체들은 사라지지 않음
- 외부에서 이들 객체에 대한 참조만을 받아 사용했기 때문
- Computer 객체와 부품 객체들의 라이프 타임은 무관
- 합성 관계 -> 부분 객체가 전체 객체에 속하는 관계
-> 전체 객체가 사라지면 부분 객체도 사라지는 경우를 의미
-> 전체를 가리키는 클래스 방향에 채워진 마름모로 표시
- Computer 객체가 생성되면 MainBoard, CPU, Memory 객체가 함께 생성
- 부품 객체들은 Computer 객체가 사라지면 같이 사라짐
- 부품 객체들의 라이프 타임이 Computer 객체의 라이프타임에 의존하는 관계가 형성
의존관계 (dependency)
- 연관 관계와 같이 한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때를 나타냄
- 두 클래스와 관계가 한 메서드를 실행하는 동안과 같이 짧은 시간만 유지됨
- 점선 화살표를 사용해 표시
실체화 관계 (relization)
- 인터페이스와 인터페이스를 실제로 구현한 클래스들 사이의 관계
- "can do this" 관계
- 스테레오 타입은 "<< >>" 사이에 원하는 이름을 쓴다 -> 키워드
'설계 패턴' 카테고리의 다른 글
템플릿 메서드 패턴 (0) | 2020.11.12 |
---|---|
Decorator 패턴 (0) | 2020.11.09 |
Strategy 패턴 (0) | 2020.10.06 |
빌더 패턴 (Builder Pattern) (0) | 2020.10.06 |
SOLID 원칙 (0) | 2020.10.05 |