2022. 1. 22. 15:08ㆍ개발공부/Java
UML(Unified Modeling Language) Diagram
UML이란
시스템 설계를 시각화 하기위해 만들어진 다이어그램입니다. 객체 지향 언어인 Java 진영에선 시스템 설계를 표현하기 위한 표준 모델링으로 볼 수 있을 것 같습니다.
UML 클래스 관계도
[출처: https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-class-diagram-tutorial/]
- Inheritance(상속)
상속은 클래스가 IS-A 관계일 때 성립하는 상태입니다.(하위 클래스가 상위 클래스를 대체할 수 있어야 함; potato -> vegetables, bus -> vehicle)
*참고로 HAS-A 관계는 조립(composition) 상태일 때 성립합니다. (Bus has an Engine)
- Aggregation
[출처: https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-class-diagram-tutorial/]
class2가 class1의 부분 클래스 관계입니다. 단 객체 생성-소멸주기는 둘이 다릅니다.
- Composition
class1이 class2를 가질 때 즉, HAS-A 관계의 클래스 상태일 때 성립합니다. Aggregation과는 달리 객체 생성-소멸주기가 같습니다.
class2는 class1 없이는 존재할 수 없기 때문입니다.
- Dependency
Composition과 유사하게 class1 내에서 class2의 객체를 사용할 때 class1은 class2에 의존하며 둘은 의존관계라고 합니다.
하지만 객체가 field로 저장되지 않기 때문에 Composition 관계가 아니며 의존관계(Dependency)라고 합니다.
- Realization
interface를 구현한 클래스가 있을 때 Realization(구현)관계라고 합니다.
참고자료
'개발공부 > Java' 카테고리의 다른 글
[Effective-java] 아이템 78 - 공유 중인 가변 데이터는 동기화에 사용하라 (1) | 2022.03.09 |
---|---|
[Java] jackson 라이브러리는 왜 non-static Inner class를 매핑하지 못할까? (1) | 2022.03.01 |
[Regex] Pattern and Matcher in Java (0) | 2022.01.21 |
[Java] main 메서드 (0) | 2022.01.15 |
[Java] Mac class (0) | 2022.01.13 |