A 클래스의 메서드를 B 클래스로 이동할 때,A 모듈의 함수를 B 모듈로 이동할 때, 함수가 자신이 속한 모듈의 요소들보다 다른 모듈의 요소들을 더 많이 참조할 때, 함수를 한 곳에서 다른 곳으로 이동 하는 것을 말한다 .
모듈성 - 프로그램의 어떤 부분을 수정할때 해당 기능과 깊이 관련된 작은 일부만 이해해도 수정이 가능하도록 하는 능력을 말한다. 코드가 모듈성이 높은 코드는 기능 수정시 하나의 함수 또는 하나의 클래스,파일 안에 코드만 이해해도 수정을 할수 있는 코드이다.
처음부터 어떤 코드가 해당 기능과 밀접한 관련이 있는지 모르기 때문에 개발하는 과정에서 코드에 이해도가 높아지면서 관련된 코드를 옮겨야 된다.
-
선택한 함수가 현재 컨텍스트에서 사용 중인 모든 프로그램 요소를 살펴본다. 이 요소들 중에도 함께 옮겨야 할 게 있는지 고민해본다.
-
선택한 함수가 다형 메서드인지 확인한다.
-
선택한 함수를 타깃 컨텍스트로 복사한다. 타깃 함수가 새로운 터전에 잘 자리 잡도록 다듬는다.
-
정적 분석을 수행한다.
-
소스 컨텍스트에서 타깃 함수를 참조할 방법을 찾아 반영한다.
-
소스 함수를 타깃 함수의 위임 함수가 되도록 수정 후 테스트한다.
-
소스 함수를 인라인할지 고민해본다.