Refactoring(inline class, Hide delegate, remove middle man)
-
Upload
dae-myung-kang -
Category
Documents
-
view
1.350 -
download
4
description
Transcript of Refactoring(inline class, Hide delegate, remove middle man)
Inline Class
Opposite Extract Class
별일 없는 클래스는 그냥 다른 클래스와 합치자!
1. 어느 클래스를 어디로 집어 넣을지 결정한다.
TelephoneNumber Class 를 Person 클래스로 집어넣기로 결정한다. TelephoneNumber 클래스를 Person에서만 사용하고 다른 곳에서는 쓰지 않기 때문이다.
2. 소스에서 선택된 클래스로 참조하는 부분을 이동할 클
래스로 변경한다.
3. Build & Test 당연히 실패한다.
4. Move Method, Move Field 등으로 함수와
필드를 옮긴다.
3,4 번을 계속 반복한다.
Hide Delegate
Opposite Remove Middle Man
Encapsulation 을 위해서, 주요 처리하는 클래스를 외부에서 보지 못하도록 한다.
1. Delegate 에 있는 Method 를 Server 로 옮
깁니다.
2. Client 는 Server 를 호출 하도록 변경합니다.
3. BUILD & TEST
4. 더 이상 Client 에서 delegate 코드를 사용하지 않으면 Server에서 Delegate를 주
는 부분을 제거한다.
Remove Middle Man
Opposite Hide Delegate
거의 모든 기능을 Delegate 에서만 처리하는 클래스가 Middle Man 이 되어버린다. 이를 제거하는 방법이 Remove Middle Man 이다.
1. Delegate 를 던져주는 Accessor 를 만든다.
2. Client 에서 사용하는 method 를 delegate 를 사용하도록 변경한다.
3. BUILD & TEST
Q & A
Thank You