Encapsulate a reference to some data structure
(데이터 구조를 캡슐화)
let defaultOwner = {firstName: "Martin", lastName: "Fowler"}
to
// defaultOwner.js
let defaultOwnerData = {firstName: "Martin", lastName: "Fowler"}
export function defaultOwner() { return defaultOwnerData }
export function setDefaultOwner(arg) { defaultOwnerData = arg }
Make encapsulate functions that are responsiboe for accessing and renewal to variables
변수로의 접근과 갱신을 전담하는 캡슐화 함수들을 만든다.
Do static analysis(with ESLint, Prettier)
정적 검사를 수행한다.
Replace all parts of the variable that were referenced directly with the appropriate encapsulation function call. Test each time you change one by one.
변수를 직접 참조하던 부분을 모두 적절한 캡슐화 함수 호출로 바꾼다. 하나씩 바꿀 때마다 테스트한다.
Destrict the ranges of variables
변수의 접근 범위를 제한한다.
Test it.
테스트한다.
If value of variables is record, Think about record encapsulation
변수 값이 레코드라면 레코드 캡슐화하기를 적용할지 고려해본다.