模板方法模式
提高代码的复用性
把常用的基本方法放入父类中
强调一种流程步骤
角色
抽象类
抽象方法
具体方法
钩子方法
空方法
通过bool控制
具体类

看例子

1.银行模板类

package TemplateMethod;

/**
* Created by Jiqing on 2016/10/31.
*/
public abstract class BankTemplateMethod
{
public void takeNumber()
{
System.out.println("取号排队。");
} public abstract void transact(); public void evaluate()
{
System.out.println("反馈评分。");
} public void process()
{
this.takeNumber();
this.transact();
this.evaluate();
}
}

2.具体业务

package TemplateMethod;

/**
* Created by Jiqing on 2016/10/31.
*/
public class Deposit extends BankTemplateMethod
{
public void transact()
{
System.out.println("存款");
}
}
package TemplateMethod;

/**
* Created by Jiqing on 2016/10/31.
*/
public class Transfer extends BankTemplateMethod
{
public void transact()
{
System.out.println("转账");
}
}
package TemplateMethod;

/**
* Created by Jiqing on 2016/10/31.
*/
public class Withdraw extends BankTemplateMethod
{
public void transact()
{
System.out.println("取款");
}
}

4.客户端


package TemplateMethod; /**
* Created by Jiqing on 2016/10/31.
*/
public class Client
{
public static void main(String a[])
{
BankTemplateMethod bank;
bank=new Deposit();
bank.process();
System.out.println("---------------------------------------");
bank = new Transfer();
bank.process(); }
}

结果:

取号排队。
存款
反馈评分。
---------------------------------------
取号排队。
转账
反馈评分。

最新文章

  1. 创建一个spring helloworld
  2. 功能测试中遇到的一些有意思的bug
  3. 文件搜索查找功能VC++
  4. 正确openvSwitch不同种类port认识
  5. Facebook HHVM 和 Hack 手册 --- 2. HHVM能做什么
  6. C++ 构造函数或析构函数调用虚函数
  7. [大数据]-Elasticsearch5.3.1+Kibana5.3.1从单机到分布式的安装与使用<2>
  8. 201521123028 《Java程序设计》第14周学习总结
  9. 学习笔记_J2EE_Spring(一)_入门
  10. C#通过COM组件操作IE浏览器(四):实用代码总结
  11. 微信公众号基础02_获取accessToken和用户信息
  12. 4. powerdesigner 生成sql脚本步骤
  13. Linux 下SHELL脚本自动同步文件
  14. jq 插入结构
  15. js数据类型隐式转换问题
  16. 【.NET】AutoMapper学习记录
  17. GO学习笔记 - 基本数据类型
  18. Design Patterns Example Code (in C++)
  19. 20145216史婧瑶《Java程序设计》第3周学习总结
  20. S数据导入

热门文章

  1. DB-SQL-MySQL-杂项-调优:Mysql千万以上数据优化、SQL优化方法
  2. 9. Palindrome Number[E]回文数
  3. ElementUI 表格表头筛选框的高度设置,超出一定高度,显示滚动条
  4. Java 系列之spring学习--springmvc搭建(四)
  5. 洛谷P4014 分配问题(费用流)
  6. Java NIO(六)选择器
  7. SQL--left join ,inner join, right jion, Limit
  8. golang vue nginx
  9. idea的项目中output框出现乱码
  10. POJ.grids.2980