重构改善既有代码之数据泥团
Data Clumps(数据泥团)
数据泥团指的是经常一起出现的数据,比如每个方法的参数几乎相同,处理方式与过长参数列的处理方式相同,用Introduce Parameter Object(引入参数对象)将参数封装成对象,或是Preserve Whole Object(保持对象完整)将参数改为对象。
出现数据泥团的弊端
1.增加代码体积
2.影响代码可读性
3.不利于后期的维护
优化方式
关于优化的常用方式在另外一篇文章总结
1.找出这些数据以字段形式出现的地方,运用 提炼类(Extract Class) 将它们提炼到一个独立对象中。
2.如果数据泥团在函数的参数列中出现,运用 引入参数对象(Introduce Parameter Object) 将它们组织成一个类。
3.如果数据泥团的部分数据出现在其他函数中,考虑运用 保持对象完整(Preserve Whole Object) 将整个数据对象传入到函数中。
4.检视一下使用这些字段的代码,也许,将它们移入一个数据类是个不错的主意。
示例
public class Car{
// Benz
public void printBenz(String brand, String model, Integer price, double power) {
printBasicInfo(brand, model, price, power);
getTax(power, price);
}
// BMW
public void printBmw(String brand, String model, Integer price, double power) {
printBasicInfo(brand, model, price, power)