Inline Class(将类内敛化)

本文探讨了Inline Class这一重构技巧,当一个类不再有单独存在的必要时,将其内敛到最频繁的使用者类中。首先在目标类中声明源类的公共协议,然后逐步迁移方法和字段,最终移除源类,确保所有引用被正确替换。
摘要由CSDN通过智能技术生成

动机

正好与Extract Class相反。如果一个类不再承担足够责任、不再有单独存在的理由(这通常时因为此前的重构动作移走了这个类的责任),我就会挑选这一“萎缩类”的最频繁用户(也是个类),以Inline Class手法将“萎缩类”塞进另一类中。

做法

  1. 在目标类身上声明源类的pulic协议,并将其中所有函数委托至源类(如果“以一个独立接口表示源类函数”更合适的话,就应该在内敛之前先使用Extract Interface)。
  2. 修改所有源类引用点,改而引用目标类(将源类声明为private,以斩断包之外的所有引用可能。同时修改源类的名称,这便可使编译器帮助你捕捉到所有对于源类的隐藏引用点)。
  3. 编译,测试。
  4. 运用Move MethodMove Field,将源类的特性全部搬移到目标类。
  5. 为源类举行一个简单的“丧礼”。

范例

class Person...
	public String getName() {
   
		return name;
	}

	public String getTelephoneNumber() {
   
		return _officeTelephone.getTelephoneNumber(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值