본문 바로가기
자바로 배우는 리팩토링

UML - 클래스 다이어그램

by 킹차니 2021. 12. 21.

 

 

 

 

 

책의 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