曾用名:自封装变量(Self -Encapsulate)
曾用名:封装字段(Encapsulate Field)
//重构前
let defaultOwner = {firstName: "Martin", lastName: "Fowler"};
//重构后
let defaultOwnerData = {firstName: "Martin", lastName: "Fowler"};
export function defaultOwner(){
return defaultOwnerData;
}
export function setDefaultOwner(arg){
defaultOwnerData = arg;
}
做法:
1、创建封装函数,在其中访问和更新变量值
2、执行静态检查
3、逐一修改使用该变量的代码,将其改为调用合适的封装函数,每次替换之后,执行测试。
4、限制变量的可见性
有时没办法组值直接访问变量,若果真如此,可以试试将变量改名,再执行测试,找出仍在直接使用该变量的代码
5、测试
6、如果变量的值是一个记录,考虑使用【封装记录】