【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、自定义校验类或注解

 【review 代码】

 

使用1:

 【review 代码】

使用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、借助框架参数校验

 【review 代码】