1.重复代码
抽取成方法
2.过长函数
抽取方法 ,当需要注释才能说明该段代码用途的时候,就应该抽取出函数,并用用途,而 非实现手法命名。以做什么命名,而不是怎么做命名。条件表达式和循环是提练的信号
3.过大的类
(1)将类中作用类似的变量抽取出来,组成一个新类。(2)将类中的过长函数抽取成短函数。
4.过长参数列
(1)将该参数转换成方法去获取 (2)将同一对象的数据收集起来,并用该对象替换他们。(3)如果数据缺乏合理的权属,则自己新建一个参数对象。
5.发散式变化
某个类经常因为各种原因在不同方向上发生变化。应该找出特定原因而造成的变化,并将其提练到另一个类中。
6.霰弹式修改
如果遇到变化,必需在很多不同的类中做小的修改,就把这些需要修改的地方放入同一个类中。
7.依恋情结
如果一个函数所需要的数据主要来自另一个类,就把该函数移到另外一个类中。如果数据来自多个类,就将该函数移到使用数据最多的那个类中。根据原则:将总是一起变化的东西放在一起。
8.数据泥团
将经常出现的数据提练到一个对象中。并用该对象取代函数过长的参数。
9.基本类型偏执
将基本类型写成对象类型,用对象当参数。
10.switch惊悚现身
将switch查询条件用多态代替
11.平行的继承体系
每当你为某一个来增加一个子类,也必须为另一个类增加一个子类。
12.冗赘类
如果一个类不值其身价,就删掉他。如果一个子类没有做足够的工作,就应该用“折叠继承体系”将其与父类合并。
13.夸夸其谈未来性
将这个类除掉。
14.令人迷惑的暂时字段
对象内的实例变量仅为某种特点情况而设。将这些变量放到新类中。
15.过度耦合的消息链
16.中间人
过度委托会让代码难懂。
17.亲呢关系
如果两个类联系过于紧密,可以考虑将这两个类的共同点放到一个新类中。
18.异曲同工的类
19.不完美的库类
20.纯稚的数据类
21.被拒绝的遗赠
22.过多的注释
重构-改善既有代码设计学习笔记(一)—代码的坏味道
最新推荐文章于 2024-09-08 11:46:40 发布