refactoring #2 moving features between Objects
이번 장은 주로 여기저기 퍼져있는 method들을 다시 재배치하고, public 에서 가릴건 가리고, 하는 방법이다. 1. method 나 class 를 따로 빼거나 이동하게 되면, 작업을 마친 뒤 original method, class 를 다시한번 살펴본다. 그러면 single-responsibility 를 더 잘 표현하는 increased clarity 로 renaming 할 수 있을지도 모른다. (여러 기능을 하던 것들이 빠져나갔기 때문에) 2. 이런 경험이 많지는 않아도 한 두번 있었던것 같은데. library class 에 원하는 method 하나가 없는 경우가 있다. 그런 경우, 아래와 같은 방법이 가능하다. introduce foreign method method 를 하나 만들어서, 거기에 library object 를 parameter 로 받아서 필요한 기능을 구현한다. introduce local extension library class 를 extend 하거나, wrapper class 를 만든다. final keyword 등으로 extend 를 할 수 없는 경우 wrapper class 를 만들어서 감싸면 되는데, 이 경우 기존 library class 의 모든 public class 를 delegate 해서 호출해줘야 한다.: 전반적으로 이번챕터는 지난 extract 챕터와 거의 유사해보인다. 아직 이런 경우에 대한 경험이 없어서 그런것 같다. 어쨌든 요점은, 1 class 1 responsibility 를 유지하는 것이 중요하며, class 가 점점 커져가면서 여러가지 field, method 들이 추가되게 되면, 어느 순간 extract class 하는것이 필요하고, 이때 관련 field, method 들을 새로 만든 class 로 이동시키면된다. 그리고 ...