책의 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클래스가 없어도 컴파일 가능하다.
'자바로 배우는 리팩토링' 카테고리의 다른 글
메소드 추출 (0) | 2021.12.31 |
---|---|
널(null)객체 도입 (0) | 2021.12.28 |
어서션(Assertion) (0) | 2021.12.25 |
MagicNumber를 치환하기 (0) | 2021.12.22 |
리팩토링이란? (0) | 2021.12.22 |