重构——12提炼类(Extract Class)

提炼类(Extract Class)

并发和事务的风险;某个类做了两个类做的事;建立一个新类,将相关的字段和函数从旧类搬移到新类

一、动机

1、让类的抽象更清楚,让类的责任更明确

2、如果某些数据和函数总是一起出现,某些数据经常同时变化甚至彼此相依,这就表示你应该将它们分离出去

3、子类化的时候你发现某些特性需要以一种方式来子类化,另外一些特性需要以另一种方式子类化,这就意味着你需要分解原来的类

二、做法

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

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

3、建立从“旧类访问新类”的连接关系,需要的时候建立双向连接

4、对于你想搬移的每一个字段,使用Move Field搬移之

5、每次搬移后,编译,测试

6、使用Move Method将必要的函数搬移到新类。先搬移较低层次的函数,再搬移较高层函数

7、每次搬移后,编译,测试

8、检查,精简每个类的接口,检查双向连接是否可以改为单项连接

9、检查是否公开新类。如果你的确需要公开它,就要决定让它成为引用对象还是不可变的值对象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值