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 로 이동시키면된다. 그리고 난 뒤 남아있는 class, method 들의 naming  을 더 명료하게 바꿀 수 있는지 살펴본다. 끝.

Comments

Popular posts from this blog

삼성전자 무선사업부 퇴사 후기

개발자 커리어로 해외 취업, 독일 이직 프로세스

코드리뷰에 대하여