夜雨聆风学习资料网

ARTICLE · 1333411

第104篇:模板方法模式——封装通用导出

第104篇:模板方法模式——封装通用导出

第104篇:模板方法模式——封装通用导出

我们团队真栽过一次:同一个导入功能,复制出三份代码,最后线上把系统拖垮了。

最初只有 CSV 导入。后来接 Excel、接 JSON,开发图省事,直接复制粘贴。三个类各自改,越改越不像。

某次补“用完关文件”,CSV 和 Excel 都加了,JSON 漏了。测试跑几百次没事,上线一忙就报 Too many open files——文件句柄全被吃光。

更麻烦的是事务。三个类对“什么时候提交”写了三种实现。有的逐批提交,有的校验失败也不回滚。同一规则,三种结果。

问题不在复制粘贴本身,而在流程控制权散到了子类手里。资源关闭、事务边界、失败回滚,本该统一保证的事,全靠人记。

解法是把骨架锁死:父类写个 final 的 execute(),子类只填读取、校验、映射、入库这四步。事务、回滚、通知、关资源,全由父类说了算。

钩子也要少。超过五个就该考虑用组合替代继承。异常更不能吞——catch 住不抛,Spring 可能以为成功了,数据就脏了。

模板方法真正要锁住的,不是代码复用,而是那几条不能变的规矩。

原文第104篇:模板方法模式——封装通用导出、导入流程的“流程控制权”边界
收录于Java项目实战示例
新疆,46分钟前,

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料