클린코더스 - 백명석님 강의를 보고 작성한 글입니다.
Source Code


  • 처음 소스파일은 클래스 하나에 메소드 하나의 구조로 되어있었습니다.

initailize_builder.PNG

  • 처음 상태에 Method 하나에 너무 많은 내용이 들어있다. 위의 사진처럼 따로 Builder라는 클래스를 따로 빼주었다.

test2.gif

  • WikiPagebuilder 지역 변수가 여러 번에 걸쳐서 사용되고 있으므로 필드 변수로 뺄 수 있다. 이작업으로 인해 Method는 최소한의 변수를 가져야한다는 사항을 만족시킬 수 있다.
  • 그리고 Method에서 두개 이상의 변수를 가지고, 수정하고 있으면 IDE에서 제공하는 Extract기능을 사용할 수 없다.

test3.gif

test4.gif

  • 가장 안쪽의 if문이 비슷한 형태로 반복되고있는걸 볼 수 있다. 하지만 buffer(...)에서 각자 취하고 있는 값이 조금 다르기 때문에 Variable로 Extract 해준다.
  • 그 후 유사한 부분에 대해서 Extract Method를 진행한다.