JAVA设计模式之【模板方法模式】
2024-08-31 12:32:12
模板方法模式
提高代码的复用性
把常用的基本方法放入父类中
强调一种流程步骤
角色
抽象类
抽象方法
具体方法
钩子方法
空方法
通过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();
}
}
结果:
取号排队。
存款
反馈评分。
---------------------------------------
取号排队。
转账
反馈评分。
最新文章
- 创建一个spring helloworld
- 功能测试中遇到的一些有意思的bug
- 文件搜索查找功能VC++
- 正确openvSwitch不同种类port认识
- Facebook HHVM 和 Hack 手册 --- 2. HHVM能做什么
- C++ 构造函数或析构函数调用虚函数
- [大数据]-Elasticsearch5.3.1+Kibana5.3.1从单机到分布式的安装与使用<;2>;
- 201521123028 《Java程序设计》第14周学习总结
- 学习笔记_J2EE_Spring(一)_入门
- C#通过COM组件操作IE浏览器(四):实用代码总结
- 微信公众号基础02_获取accessToken和用户信息
- 4. powerdesigner 生成sql脚本步骤
- Linux 下SHELL脚本自动同步文件
- jq 插入结构
- js数据类型隐式转换问题
- 【.NET】AutoMapper学习记录
- GO学习笔记 - 基本数据类型
- Design Patterns Example Code (in C++)
- 20145216史婧瑶《Java程序设计》第3周学习总结
- S数据导入
热门文章
- DB-SQL-MySQL-杂项-调优:Mysql千万以上数据优化、SQL优化方法
- 9. Palindrome Number[E]回文数
- ElementUI 表格表头筛选框的高度设置,超出一定高度,显示滚动条
- Java 系列之spring学习--springmvc搭建(四)
- 洛谷P4014 分配问题(费用流)
- Java NIO(六)选择器
- SQL--left join ,inner join, right jion, Limit
- golang vue nginx
- idea的项目中output框出现乱码
- POJ.grids.2980