设计模式:模板方法模式
2019-01-21 02:41:14来源:博客园 阅读 ()
模板方法模式是编程中经常用到的模式,它定义了一个操作的算法骨架,将某些步骤延迟到子类实现。
这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。
核心:处理某个流程的代码都已具备,但其中某个节点的代码暂时不能确定,所以将这个节点的代码
实现转移到子类完成。
例子:模拟一个银行取号业务流程。
/** * 模擬银行取号排队 */ public abstract class BankTemplateMethod { public void takeNumber(){ System.out.println("取号排队"); } //办理具体业务 public abstract void transact(); public void evaluate(){ System.out.println("反馈评分"); } /** * 模板方法,把基本操作組合在一起,防止惡意修改,一般用final修飾 */ public final void process(){ this.takeNumber(); this.transact(); this.evaluate(); } }
public class Client { public static void main(String[] args) { BankTemplateMethod btm = new DrawMoney(); btm.process(); } } //具体子类如果有其他业务继续定义子类即可 class DrawMoney extends BankTemplateMethod{ @Override public void transact() { System.out.println("取款实现"); } }
模板方法模式在平时业务中很常用,基于继承的方式(本质上就是多态)使得也比较容易实现。
模板方法有点类似方法回调,子类具体实现的方法就是一个钩子方法。
在实际业务中,当我们要实现一个算法,整体步骤很固定,但某些部分存在变法,那么可以将变化
部分抽象出来,供子类实现。
原文链接:https://www.cnblogs.com/gcm688/p/10296092.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 类的继承,方法重新中修饰符如何定义 2020-06-10
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后 2020-06-10
- 设计模式-委派/策略模式 2020-06-09
- 深入理解:设计模式中的七大设计原则 2020-06-07
- 设计模式---类之间的关系知多少 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash