博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式学习(十六) 模板方法模式
阅读量:6113 次
发布时间:2019-06-21

本文共 1463 字,大约阅读时间需要 4 分钟。

场景:

  -- 客户到银行办理业务

    1:取号排队

    2:办理具体现金/转账/企业/个人/理财业务

    3: 给银行工作人员评分

模板方法介绍;

  -- 模板方法模式是编程中经常用到的模式,它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤

 

核心:

   -- 处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,我们采用模板方法模式。将这个节点的代码实现转移给子类完成。即:处理步骤父类中定义好,具体实现延迟到子类中

 

银行业务代码实现:

package templateMethod;public abstract class BankTemplateMethod {    public void takeNumber(){        System.out.println("取号排队");    }        public abstract void  transact();        public void evaluate(){        System.out.println("反馈评分");    }        //模板方法    public final void process(){                this.takeNumber();        this.transact();        this.evaluate();    }}
模板
package templateMethod;public class Client {    public static void main(String[] args){        BankTemplateMethod btm = new DrawMoney();                btm.process();                //采用匿名内部类        BankTemplateMethod btm2 = new BankTemplateMethod(){            @Override            public void transact() {                System.out.println("我要存钱");                            }                    };                System.out.println();        btm2.process();            }}class DrawMoney extends BankTemplateMethod{    @Override    public void transact() {        System.out.println("我要取钱");            }    }
客户端与模板实现

 

好莱坞原则:

“Don't call me, we'll call you back”.

   -- 在软件开发中我们可以将call翻译为调用。子类不能调用父类,而通过父类调用子类。这些调用步骤已经在父类中写好了,完全由父类控制整个过程

 

应用场景:

转载于:https://www.cnblogs.com/lipeng0824/p/4442989.html

你可能感兴趣的文章
P127、面试题20:顺时针打印矩阵
查看>>
JS图片跟着鼠标跑效果
查看>>
[SCOI2005][BZOJ 1084]最大子矩阵
查看>>
学习笔记之Data Visualization
查看>>
Leetcode 3. Longest Substring Without Repeating Characters
查看>>
【FJOI2015】金币换位问题
查看>>
数学之美系列二十 -- 自然语言处理的教父 马库斯
查看>>
Android实现自定义位置无标题Dialog
查看>>
面试总结
查看>>
Chrome浏览器播放HTML5音频没声音的解决方案
查看>>
easyui datagrid 行编辑功能
查看>>
类,对象与实例变量
查看>>
HDU 2818 (矢量并查集)
查看>>
【转】php字符串加密解密
查看>>
22. linux 常用命令
查看>>
ASP.Net 使用GridView模板删除一行的用法
查看>>
(十六)字段表集合
查看>>
JPGraph
查看>>
实验二 Java面向对象程序设计
查看>>
------__________________________9余数定理-__________ 1163______________
查看>>