자바로 배우는 리팩토링
UML - 클래스 다이어그램
킹차니
2021. 12. 21. 22:41
책의 0장에서 UML을 짚고 넘어간다. 이전에 UML을 잘 모르고 대충 보고 넘어갔는데, 좋은 기회인거 같아 정리해본다.
아래와 같은 클래스들이 있다고 하자.
위의 클래스들을 UML로 나타내면 아래와 같다.
하나씩 알아보자.
Child는 Parent의 하위 클래스(상속 - inheritance)
코드 예시:
public class Parent{
...
}
class Child extends Parent{
...
}
Child는 InterfaceX를 구현한다. (실체화 - realization)
코드 예시:
interface InterfaceX{
...
}
public class Child implements InterfaceX{
...
}
Cantainer는 Part를 포함(집합 - aggregation)
코드 예시:
class Part{
...
}
public class Container{
private Part part;
public Container(Part part){
this.part = part;
}
}
ClassA는 ClassB를 알고 있음 (직접 연관 - directed association)
코드 예시:
public class A{
private B b;
}
ClassA는 ClassB를 사용함 (의존 - dependancy)
코드 예시:
public class A{
public void methodOfA(B b){
b.methodOfB();
}
}
중요한 것은 화살표의 방향이다. A클래스가 B클래스를 가리킨다면 A클래스는 B클래스에 의존하기 때문이다. A클래스는 B클래스가 없다면 컴파일할 수 없다. 하지만 B클래스는 A클래스가 없어도 컴파일 가능하다.