절차
- 변수로의 접근과 갱신을 전담하는 캡슐화 함수들을 만든다.
- 정적 검사를 수행한다.
- 변수를 직접 참조하던 부분을 모두 적절한 캡슐화 함수 호출로 바꾼다. 하나씩 바꿀 때마다 테스트 한다.
- 변수의 접근 범위를 제한단다.
- 테스트 한다.
- 변수 값이 레코드라면 레코드 캡슐화하기를 적용할지 고려해본다.
예시
Before:
let defaultOwner = { firstName: "John", lastName: "Doe" };
After:
let defaultOwnerData = { firstName: "John", lastName: "Doe" };
export function defaultOwner() {
return defaultOwnerData;
}
export function defaultOwner(data) {
defaultOwnerData = data;
}
출처 : 리팩터링 2판 – Chapter6