回调方法与模板方法模式

本文探讨了在软件设计中如何通过分离变化与固化的部分来提高程序的可扩展性和可控性。通过实例分析,如坐飞机出行流程及数据库查询操作,介绍了如何利用模板方法模式来简化代码结构并提升维护效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决什么问题:

分离程序中变化与固化,增加程序的可扩展性、可控性。
程序正常需要多步完成,其中有些部分是确定的、不变的则抽离到A方法中,变化的部分由调用者具体实现实现。
业务需求:比如坐飞机出行:订票—>值机—>去机场—>取票—>登机。其中怎么去机场这部门就是变化的,不是航空部门决定的。乘客可以选择做机场大巴、出租车、代驾、机场快轨。其他都是航空部门提供的固化服务流程。
技术需求:数据库查询操作都需要获取数据源、获取Statement对象,获取ResultSet、处理集、关闭数据源。其中处理结果集部分只有具体实现者知道怎么处理。

如果不分离,程序逻辑搅在一起,重复性代码多,可控性不高,如果固化步骤增减、变化则需要修改N处,分离后只需要修改固化模块。

二者如何选择:

考虑实现变化部分是采用子类继承父类方式灵活还是回调方法方式灵活。比如数据库查询如果采用继承的方式则每个查询都要实现父类,子类的数量是不可知的,后期维护就是灾难。但是采用回调方法就不需要继承(内部类实现接口),多个查询可以在一个类中实现且互不干扰。

具体实现:

http://www.cnblogs.com/lcngu/p/5111066.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值