【GOF23设计模式】模板方法模式

来源:http://www.bjsxt.com/ 
一、【GOF23设计模式】_模板方法模式、钩子函数、方法回调、好莱坞原则

场景

模板方法模式介绍

案例代码

 1 package com.test.templateMethod;
 2 
 3 public abstract class BankTemplateMethod {
 4     //具体方法
 5     public void takeNumber(){
 6         System.out.println("取号排队");
 7     }
 8 
 9     public abstract void transact();//办理具体的业务   //钩子方法
10 
11     public void evaluate(){
12         System.out.println("反馈评分");
13     }
14 
15     /**
16      * 模板方法,把基本操作组合到一起,子类一般不能重写
17      */
18     public final void process(){
19         this.takeNumber();
20 
21         this.transact();//像个钩子。执行时,挂哪个子类的方法就调用哪个
22 
23         this.evaluate();
24     }
25 }
 1 package com.test.templateMethod;
 2 
 3 public class Client {
 4     public static void main(String[] args) {
 5         BankTemplateMethod btm = new DrawMoney();
 6         btm.process();
 7 
 8         //采用匿名内部类
 9         BankTemplateMethod btm2 = new BankTemplateMethod() {
10 
11             @Override
12             public void transact() {
13                 System.out.println("我要存钱!!!!");
14             }
15         };
16         btm2.process();
17 
18         BankTemplateMethod btm3 = new BankTemplateMethod() {
19 
20             @Override
21             public void transact() {
22                 System.out.println("我要理财!!!!!!!!");
23             }
24         };
25         btm3.process();
26     }
27 }
28 
29 class DrawMoney extends BankTemplateMethod {
30 
31     @Override
32     public void transact() {
33         System.out.println("我要取款!!!");
34     }
35 
36 }
控制台输出:
取号排队
我要取款!!!
反馈评分
取号排队
我要存钱!!!!
反馈评分
取号排队
我要理财!!!!!!!!
反馈评分

方法回调

什么时候

posted on 2016-08-24 13:55 ErBing 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/erbing/p/5802655.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值