设计模式-模板模式

模板模式是一种设计模式,定义了操作中的算法骨架,而将一些步骤延迟到子类中。子类可以重写父类中定义的某些方法来实现个性化。在游戏程序中,该模式可用于创建通用流程,并允许子类自定义特定步骤。例如,消息推送过程中的通用逻辑(如trace开始和结束)可以由父类实现,而特定推送平台的策略则由子类实现。这种模式减少了重复代码,增强了代码的可扩展性和灵活性。

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

模板设计模式

定义

在模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。

简单来说,有多个子类共有的方法,且逻辑相同,可以考虑作为模板方法。

模板的价值就在于骨架的定义,骨架内部将问题处理的流程已经定义好,通用的处理逻辑一般由父类实现,个性化的处理逻辑由子类实现。比如炒土豆丝和炒麻婆豆腐,大体逻辑都是1.切菜,2.放油,3.炒菜,4.出锅,1,2,4都差不多,但是第3步是不一样的,炒土豆丝得拿铲子翻炒,但是炒麻婆豆腐得拿勺子轻推,否则豆腐会烂。

使用场景

不同场景的处理流程,部分逻辑是通用的,可以放到父类中作为通用实现,部分逻辑是个性化的,需要子类去个性实现。

实践经验

有个需求是用户扫码支付以后向档口的收银设备推送一条支付消息,收银设备收到消息以后会进行语音播报,逻辑很简单,就是调用推送平台推送一条消息给设备即可,但是由于历史原因,某些设备对接的推送平台是不一样的,A类设备优先使用信鸽推送,如果失败了需要降级到长轮询机制,B类设备直接使用自研的推送平台即可,还有个现状是A类和B类的消息格式是不一样的(不同的团队开发,后期被整合到一起),鉴于此,抽象出PushStrategy

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值