订单列表可以说是app最重要的组成部分,包含许多重要的逻辑,跳转支付,订单详情,催单还有一系列的订单状态变化,这块代码是很久之前写的,然后经过很多手,逻辑代码全部写在一个订单列表的适配器里,导致这一块的代码难以维护,代码可读性也很低,经常为了改一个小问题,上上下下的找相关逻辑,于是有了重构的想法。
一、原有实现逻辑

这边展示了其中很少的一部分逻辑,全部写在一个文件里,代码行数轻松达到1800行,开发中订单列表遇到新需求或者需要改动原来的逻辑的时候,你就会

二、重构的方案
不同的状态显示不同的不同的UI,这种很容易让人想到状态模式,对于不同的点击事件则可以采用类似的策略模式,两者很相像,我的理解是状态模式是反应向的,策略模式是目的向的,可以自由组合的。


脑子里这有了一个大概简单的想法,当然这些模式也会有些缺点,类的数目会爆炸增加,对于我现在的项目肯定是利大于弊的。
大体设计是这样的

OrderManager:工厂类,负责创建对应的实现类。
OrderState:订单显示接口
ClickStrategy:点击事件接口