采用设计模式带来事半功倍

最近主导开发一个需求,刻意采用了设计模式,结果带来了开发效率提升,代码结构也清晰合理了很多。

简单描述下需求:对接第三方平台,将经营数据以指定格式上传到该平台,涉及5个上传数据接口。

这里重点谈下使用设计模式的过程。因为项目时间比较紧,刚开始我并没有考虑该需求是否可以采用某个设计模式来提效,而是先花了一周左右开发了一个接口并调通该接口,剩下的4个接口我打算分配给别的同事开发。在分配之前,我在想这5个接口有一定的相似性,是否可以提取出一些公共方法可以共用,带着这个思路我就在23个设计模式中寻找是否有合适的模式。

一番调研后,我发现可以用简单工厂模式来返回指定的接口实现类(后面发现场景不适合,弃用),用模板方法来实现上传的各个步骤,将可以共用的步骤(方法)在抽象类中实现,将差异化步骤(方法)在子类中实现。按照这个思路设计代码后,我发现原本要4天(接口耗时)*4(接口数)=16人天,缩短到2*4=8人天应该就可以完成。于是我基于模板方法模式下的代码结构,开发剩余接口中最复杂的一个接口,不到2天就开发调试完成。在开发过程中,我不用关心上传的具体步骤(由模板方法实现),不用实现参数合法性检查、配置参数查询和任务状态更新等逻辑(这些步骤已实现,可以直接共用),只关心该接口中数据收集、封装和发送数据,大大减少了我的工作量。另外,采用了模板方法模式后,共用的逻辑都维护在指定方法中,一旦需要修改逻辑,只要修改唯一的方法即可,提高了代码复用性,降低了维护成本。

简单给本次需求开发做个总结:采用了模板方法模式后,代码结构清晰,提高了系统的扩展性和复用性。之前看了那么久设计模式的书,这次总算是落到实处了,当然也暴露了自己之前对设计模式理解不深,所以迟迟没有在研发过程中使用设计模式。后来我又简单看了看现有几个系统的代码,发现有些重要方法,清晰的采用了模板方法(支付业务)、策略模式(升级卡)和责任链模式(营销活动),使得代码质量有很大的提升。

posted on 2022-11-23 20:14  阿泰555  阅读(21)  评论(0编辑  收藏  举报

导航