系统重构后,对项目定制开发的兼容性问题

公司自实施产品线战略以来,基本推翻了全部旧有业务模块。后续以标准产品+二次开发的模式进行项目开发。但在涉及到一些旧有系统二期、三期升级改造过程中。不可避免的需要解决旧有系统的客户定制化开发兼容性问题。也就是旧有系统定制开发的模块不能丢弃。重新开发从工程进度上又不允许。因此,需要把旧有系统的某几个定制开发模块嫁接到重构后的产品项目上。

面对该需求,本人参考了日志slf4j的兼容包log4j-over-slf4j的做法。在重构系统和旧系统定制模块之间开了一个中间适配包。用来兼容重构系统和旧有模块。如下图:

a

在重构系统中,因为涉及到对表结构优化,代码优化,业务优化等方法。不能满足旧有系统的依赖。因此,在乱配包中,把旧有系统的外部依赖都用原类名、原方法名、原参数、原包名写个空壳子。用重构系统中的新组件做实现。旧有系统定制模块在消除编译问题的同时,也适配了重构系统的相关方法、接口等。

如下图所示代码:

旧有定制模块获取登录用户id在适配包中的写法:

java 复制代码
    // 调用了旧系统中的UserUtils.getLoginUserId()方法。
	public class UserUtils {
 		public static String getLoginUserId() {
 		    // 实际调用的是重构系统中的获取登录用户方法
        	return ZYUserHelper.getLoginAreaUserId();
        }
    }

通过该方案的实施,大大节省了旧系统改造升级的开发周期。在公司其他同场景的其他项目中,得到了广泛的推广。取得了良好的经济效益。

相关推荐
迦蓝叶1 天前
JAiRouter 配置文件重构纪实 ——基于单一职责原则的模块化拆分与内聚性提升
java·网关·ai·重构·openai·prometheus·单一职责原则
程序员的世界你不懂1 天前
【Flask】测试平台开发,重构提测管理页面-第二十篇
vue.js·重构·flask
老猿讲编程1 天前
存算一体:重构AI计算的革命性技术(1)
人工智能·重构
CHEN5_022 天前
【CouponHub项目开发】使用RocketMQ5.x实现延时修改优惠券状态,并通过使用模板方法模式重构消息队列发送功能
java·重构·模板方法模式·项目
萤丰信息3 天前
智慧工地如何撕掉“高危低效”标签?三大社会效益重构建筑业价值坐标
java·大数据·人工智能·微服务·重构·架构·智慧工地
程序猿阿伟3 天前
《ConfigMap热更新失效的深度解剖与重构实践》
云原生·重构
TGC达成共识3 天前
年轻教师开学焦虑破解:从心出发,重构健康工作生活新秩序
人工智能·科技·其他·安全·重构·生活·风景
Fortinet_CHINA3 天前
案例精述 | 防护即智能 Fortinet赋能英科全栈安全重构实践
安全·重构·php
蓑衣客VS索尼克3 天前
第三章:生活重构:当程序员不再只是“码农“
学习·程序人生·重构·生活
leo__5204 天前
66实现信号的小波分解和重构
人工智能·计算机视觉·重构