码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-08-24 14:36:26      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

来源: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 }
控制台输出:
取号排队
我要取款!!!
反馈评分
取号排队
我要存钱!!!!
反馈评分
取号排队
我要理财!!!!!!!!
反馈评分

技术分享

技术分享

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

标签:

原文地址:http://www.cnblogs.com/erbing/p/5802655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!