- 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다.
- 템플릿(매개변수) 클래스 정의
몇몇 언어는 매개변수 클래스(템플릿)라는 개념이 있다. Java에서 Set의 코드를 보면 아래와 같이 템플릿을 볼 수 있다.
public interface Set<E> extends Collection<E> {
이렇게 정의된 템플릿 클래스는 아래와 같이 사용할 수 있다.
Set<Person> employeeSet = new HashSet<>();
UML 에서도 이런 템플릿 매개변수를 지원한다. 템플릿 매개변수 T를 갖는 Set 을 UML로 표현하면 아래와 같다.
Set 오른쪽 위에 점선 박스는 템플릿 매개변수를 나타낸것이다. 여러개를 선언할 수 있으며, 여기서는 매개변수 이름은 T 이고, 타입은 Class 임을 표시하였다.
- 파생(derivation)
Set<Person>과 같이 매개변수 클래스를 사용하는 것을 파생(derivation)이라고 한다. 파생을 표기하는 방법에는 2가지가 있다. 1번재 방법은 간단히 <매개변수 이름::매개변수 값>, ex) Set <T::Employee> 형태로 기술한다. 2번째 방법은 링크를 보강하고 결합 요소의 이름을 바꿀 수 있게 해준다.
위 다이어그램에서 <<bind>> 키워드는 정련 관계(refinement relationship)의 스테레오 타입이다. 결합요소란 EmployeeSet 이며, 결합 매개변수는 <T::Employee> 이다.
'Concepts > UML' 카테고리의 다른 글
UML - 패키지 다이어그램 - 개요와 의존 (0) | 2021.02.10 |
---|---|
UML - 객체 다이어그램 (0) | 2021.02.10 |
UML - 클래스 다이어그램 고급 - 연관 클래스 (0) | 2021.02.10 |
UML - 클래스 다이어그램 고급 - 클래스화와 일반화 (0) | 2021.02.10 |
UML - 클래스 다이어그램 고급 - 한정 연관 (0) | 2021.02.10 |
댓글