【review 代码】
一、code view case 总结
Bad Smell |
Solution |
同一个类中两个函数含大多重复代码 |
抽取重复代码 |
多个类中含大多重复代码 |
抽取超类 |
方法入参数量过多(参数数量>=3) |
封装实体传入 |
switch case 泛滥 |
多态+反射 |
入参校验(多个参数校验、代码重复冗余) |
Java 注解、定制参数校验类或注解、借助框架参数校验 |
二、Switch case 泛滥:
多态:根据某枚举值的不同而调用不同方法(产生不同回应)
改造:多态+反射
1、将每个case分支作为一个对象(可抽象出基类)
2、利用反射传入对应class,创建出对应对象、方法
Class.forName(marketChannelEnum).newInstance()
三、入参校验:
1、java 注解
@NotNull
@DecimalMin
2、自定义校验类或注解
使用1:
使用2:
Spring AOP 横切
<bean id="validateArgsAOP" class="com.my.validate.aop.ValidateArgsAOP"/>
<aop:config>
<aop:aspect id="argAOP" ref="validateArgsAOP">
<aop:pointcut id="target" expression="execution(* com.wlqq.apigateway..*Controller.*(..))"/>
<aop:around method="doAround" pointcut-ref="target"/>
</aop:aspect>
</aop:config>
3、借助框架参数校验