1、不同用户运费不同,折扣不同,计算订单总额的逻辑不同。使用 if else 的话,会导致共有计算总额的代码重复,如果新增一种用户,需要新增 if else 语句,对之前的代码产生影响。
解决办法:
使用工厂模式,业务逻辑中调用父类的方法,不同的用户创建不同的子类,只需对不同的逻辑做处理,其他调用父类共有方法即可。如果新增用户,只需新增子类,复写不同逻辑的处理方法即可。
2、 调用银行接口,需要对每个字段进行拼接传送,不同类型需要补全为定长字符串。如果要调多个银行接口,需要写多个方法,每个方法里都有字符串的拼接,调用逻辑,显然重复量大。
解决办法:
使用自定义注解填充接口数据属性。
写一个共有方法,使用反射,获取到注解字段,对每个字段进行拼接处理,对接口进行调用。
3、一个类属性过多时,set 方法很容易手写错误,几十个字段很难检查出来。
解决办法:
BeanUtils.copyProperties()