함수 리팩토링, 추상화 예제 (1)
클린코더스 - 백명석님 강의를 보고 작성한 글입니다.
Source Code
- 해당 강의에서 나온 예제입니다. 처음 소스파일은 클래스 하나에 메소드 하나의 구조로 되어있었습니다.
- 처음 상태에
Method
하나에 너무 많은 내용이 들어있다. 위의 사진처럼 따로 Builder라는 클래스를 따로 빼주었다.
WikiPage
와builder
지역 변수가 여러 번에 걸쳐서 사용되고 있으므로 필드 변수로 뺄 수 있다. 이작업으로 인해Method
는 최소한의 변수를 가져야한다는 사항을 만족시킬 수 있다.- 그리고
Method
에서 두개 이상의 변수를 가지고, 수정하고 있으면 IDE에서 제공하는 Extract기능을 사용할 수 없다.
- 가장 안쪽의
if
문이 비슷한 형태로 반복되고있는걸 볼 수 있다. 하지만buffer(...)
에서 각자 취하고 있는 값이 조금 다르기 때문에Variable
로 Extract 해준다. - 그 후 유사한 부분에 대해서
Extract Method
를 진행한다.