支付与对账逻辑代码重构

支付与对账逻辑代码重构

 

1,国考系统是一个有10多年的老项目。代码结构组织不好,给维护者造成很多困难,因为没法理解它究竟是怎样做一件事的。


2,代码繁琐。全程的 if  else  语句,方法杂糅。

 

3,基于上面原因,花费了大量时间,单步调试系统。先理解业务逻辑,确保自己在重构的时候心里踏实。虽说重构代码并不需要理解代码行为,但在需要重写算法逻辑时,还是需要理解程序行为。

 

4,整理出需要什么样的接口,这个接口需要什么方法。

 

5,究竟该如何做才能把代码调整到自己满意,而且能够轻松应对需求的变更以及扩展。

 

 

支付方式类图:


抽象出一个OnlinePay(在线支付)接口,这个接口持有支付算法过程。抽象一个OnlineFactory(在线工厂)负责管理实例,以后在扩展的时候,直接去这个类中进行扩展,无需修改客户代码,避免引入Bug。把每一个种支付方式的公用方法提到CommonPayMethod中,比如日志的记录。OnlinePay负责定义整个算法骨架,采用接口方式,不使用抽象类的方式。而CommonPayMethod负责管理支付方式用到的公用方法,使类的任务更加清晰和明确。


对账方式类图:

    

对账的方式有单个对账和批量对账。思路与支付业务逻辑代码一致。采用接口CheckBill和公用方法类CommonCheckBill并独立出一个CheckBillFactory进行实例管理。

成果:


1,代码准确地在线上跑起来。

2,代码的弹性增加。

3,代码维护变得更加简单,因为代码组织结构更加清晰。给后面维护的人提供了类图,以及我描述出我为什么会这样设计

猜你喜欢

转载自blog.csdn.net/outsanding/article/details/79335476
今日推荐