欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

代码重构

程序员文章站 2022-05-19 17:08:02
...

去掉if else

通过定义一个枚举消除

定义一个枚举 然后遍历这个枚举,通过for来缩if else

工厂|接口|实现类

if(xxx){#xxx 抽成Factory的条件
	//内容1  #将内容抽成Interface 然后 xxx内容1xxx implments Interface
} else if(xxx){
	//内容2  #将内容抽成Interface 然后 xxx内容2xxx implments Interface
}

改写成 
Xxxx.java
private Interface xxxintefacexxx;
xxxintefacexxx = InterfaceFactory.createXxxInterface();
xxxintefacexxx.deal();

if(condition)改写成Factory

public xxxintefacexxx InterfaceFactory.createXxxInterface(){
	if(xxx){
	 xxxintefacexxx = new Impl();
	}else if(xxx){
	 xxxintefacexxx = new Impl();
	}
	return xxxintefacexxx
}
      
//变种的写法
static Map<String, Operation> operationMap = new HashMap<>();
static {
    operationMap.put("add", new Addition());
    operationMap.put("divide", new Division());
    operationMap.put("multiply", new Multiplication());
    operationMap.put("subtract", new Subtraction());
    operationMap.put("modulo", new Modulo());
}

public xxxintefacexxx InterfaceFactory.createXxxInterface(type){
	return operationMap.get(type);
}

方法链的调用

代码重构

Feature Envy(依恋情结)

如果一个函数为了计算某个值,需要用到几个类的数据,就把函数移到最多被此函数使用的数据的类中

某个类太大

可以考虑移到 父类中abstract 或 移到 子类中去

相关标签: publishForCodeGen