重构:提炼类

//重构前

class Person{

        get officeAreaCode(){ return this._officeAreaCode;}

        get officeNumber(){ return this._officeNumber;}

}

//重构后

class Person{

        get officeAreaCode(){ return this._telephoneNmber.areaCode;}

        get officeNumber(){return this._telephoneNumber.number;}

}

class TelephoneNmber{

        get areaCode(){        return this._areaCode;}

        get number(){        return this._number;}

}

做法:

1、决定如何分解类所负的责任

2、创建一个新的类,用以表现从旧类中分离出来的责任

如果旧类剩下的责任与旧类的名称不符,为旧类改名。

3、构造旧类时创建一个新类的实例,建立“从旧类访问新类” 的连接关系。

4、对于你想要搬移的每一个字段,运用【搬移字段】搬移之,每次更改后运行测试。

5、使用搬移函数将必要函数搬移到新类,先搬移较低层函数(也就是“被其他函数调用” 多余 “调用其他函数” 者),每次更改后运行测试。

6、检查两个类的接口,去掉不在需要的函数,必要时为函数重新取一个适合新环境的名字。

7、决定是否公开新的类,如果确实需要,考虑对新类应用【将引用对象改为值对象】 使其成为一个值对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值