一句话重构


1

Duplicated Code

重复的代码

Extract Method

2

Long Method

过长的函数

Extract Method, Replace Temp with Query

3

Large Class

过大类,可能违反SRP,DIP,ISP

Extract Class,Extract Interface

4

Long Parameter List

过长的参数列表

Introduce Parameter Object,Preserve Whole Object

5

Divergent Change

发散式变化,多种变化影响一个类,违反SRP

Extract Class,Extract Interface

6

Shotgun Surgery

霰弹式修改,一个变化影响多个类,可能类之间不够高内聚

Move Method,Move Field

7

Feature Envy

依恋情结,两个类之间互相作用过多,类之间不够低耦合,类由数据和处理这些数据的方法组成

Move Method,Extract Method

8

Data Clumps

数据泥团,一组数据在不同的地方多次重复出现

Extract Class,Introduce Parameter Object,Preserve Whole Object

9

Primitive Obsession

基本型偏执,对本该是类的值用基本类型

Replace Data Value with Object,Replace Type Code with State/Strategy,Extract Class

10

Switch Statements

switch惊现身,出现多处类似的switch

Replace Conditional with Polymorphism,Replace Parameter with Explicit Methods,Introduce Null Object

11

Parallel Inheritance Hierarchies

平行继承体系,当增加一个新类时总是要增加另一个类

 

12

Lazy Class

冗赘类

Inline Class

13

Speculative Generality

夸夸其谈未来性,在没有任何暗示的情况下考虑扩展

Rename Method

14

Temporary Field

令人迷惑的暂时值域, 使用临时变量太多并且作用域不当

Introduce Null Object,Extract Class[to method object]

15

Message Chains

过度耦合的消息链,太长的委托关系链

Hide Delegate

16

Middle Man

中间转手人,一个类多数方法委托给另一个类〔类与类的关系*Wrapper(反例)〕

Remove Middle Man,Inline Method.    

17

Inappropriate Intimacy

狎昵关系,两个类过于相互依赖private内容

,类之间不够低耦合

Extract Class,Hide Delegate

18

Alternative Classes with Different Interfaces

异曲同功的类

Rename Method,Move Method,Extract Superclass

19

Incomplete Library Class

不完美的程序库类,没有代码的需要扩展的类库

Introduce Foreign Method,Introduce Local Extension

20

Data Class

纯稚的数据类,只有数据的类

[Feature Envy]

21

Refused Bequest

被拒绝的遗赠,继承了一个类,但不愿继承所有接口,即有多个接口不被自己的潜在客户使用

Replace Inheritance with Delegation

22

Comments

过多的注释

我们之所以要在这里提到Comments,因为人们常把它当作除臭剂来使用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值