优化之前存在的问题 - 修改的思路
Q1:一个类里面代码描述的事物繁杂,代码可读性难度高,而且由于逻辑比较冗余在一个类里面,代码之间的关联性也越来越强,导致出现大量的重复代码。导致不好代码重用,不好排查问题。
Q2:在大量逻辑堆积在一起的时候,会出现多层的匿名内部内嵌套+MVVM的回调。从而导致,传入的参数常量化,如果该匿名内部类里面耗时操作,就发生重复调用时,传入新的参数无效问题
Q3:由于Activity各个生命周期方法代表了当前页面处于不同的状态,业务逻辑也相对应发生不同的变化。随着业务逻辑场景重叠越多,就会带来越多代码,需要修改或添加功能时,涉及到一些特别庞大的对象,业务的耦合性太高,难以修改
A1:将描述的事物按照功能模块拆分成多个类,在类里面尽量将每一个大的步骤封装成方法,这样做可以比较清晰的描述当前业务的流程,还能提高代码的重用性。同时也会减少嵌套。
A2:将Activity里面的业务逻辑提取出来,把每一个大的功能看作是一个模块,封装成一个或多个Controller类来处理,Activity只需要简单调度各个Controller的方法,和获取结果即可。
--------------------------------------------------------------------------------------------
Q4: 字段使用统一使用常量代替,减少字段变化时修改的范围
Q5: 关于售卖时计算金额,使用BigDecimal进行替换计算,保证计算时,不会出现精度丢失,普通的运算符会出现精度计算丢失
接入bugly 质量管理插件,能够跟详细的收集到项目里面发生的代码异常问题。
把payActivity里面的计算逻辑尽量拿到 购物界面进行,避免PayActivity里面大量的弹框和计算逻辑堆积到一起,导致维护和排错的难度增加。
在多处进行库存的判断(购物车,点击支付,点击提交支付),避免屏端和小程序同时购买,出现的库存冲突问题。