refactoring(inline class, hide delegate, remove middle man)

Post on 05-Dec-2014

1.355 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Inline Class Hide Delegate

Remove Middle man

charsyam@naver.com

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

top related