重构的分类

重构的分类:
重构的手法中有相当一大部分是双向的、互逆的,也就是说在某种时候是你找我,而在另一些时候是我找你,比如Pull Up Field和Push Down Field,Pull Up Method和Push Down Method等,而另一些则是强调单向的、勇往直前的,比如Encapsulate Field、Remove Control Flag、Remove Parameter、Remove Assignments to Parameters、Replace Conditional with Polymorphism等。
在双向的、护逆的重构手法中,强调的是一种平衡,是职责清晰,角色明确。
而在强调单向的、勇往直前的重构手法中,突出的是使代码更容易理解、更容易扩展,更加具有面向对象性。
采用手法的含义:
1 提炼(Extract):就是对某个过程的一部分,或某个事物的一部分进行抽象并概念化,以减小所表达的目的(要做什么)和实现(做什么,如何做)之间的语义差距。
2 内联(Inline):就是用其直接实现替换原来的间接调用,通过内联可以去掉意义不大的间接性。
3 移动(Move,Pull Up/Down ):在类之间(包括父类和子类之间)移动属性和方法,以使类之间职责更明确更清晰。
4 替换(Replace):将一种实现方式用另一种实现方式替代,以便于更直接更集中和更灵活。
5 改变 (Change):改变和替换语义上有些类似,其间的差别还不是很清楚。
6 其他:包括增加Add、移除Remove、隐藏Hide、引入Introduce、封装Encapsulate、合并Consolidate等等。

Bad Smells分类:
1 The Bloaters(臃肿):臃肿的坏味道表明已经膨胀到无法对之进行有效的处理。包括:Long Method,Large Class,Primitive Obsession,Long Parameter List,DataClumps。
2 The Object-Orientation Abusers(面向对象滥用):表示解决方案没有很好的利用面向对象设计。包括:Switch Statements,Temporary Field,Refused Bequest,Alternative Classes with Different Interfaces。
3 The Change Preventers(同protected variation):阻碍了改变软件或者更进一步开发软件。包括Divergent Change,Shotgun Surgery,Parallel Inheritance Hierarchies。
4 The Dispensables(可省掉的):代表一些没有必要的东西,应该从源代码中移除。包括:Lazy class,Data class,Duplicate Code,Dead Code,Speculative Generality。
5 The Couplers(耦合):与耦合相关的坏味道。包括:Feature Envy,Inappropriate Intimacy,Message Chains,Middle Man。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值