设计模式之模板方法模式
来源:互联网 发布:易采网站数据采集系统 编辑:程序博客网 时间:2024/06/16 18:55
设计模式之模板方法模式
模板方法模式(Template Method) 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
需求:购买车票。简单的说,用户登录,选择车票,确认支付,购买完成。
对于每一个用户都是这样的步骤,但是每个用户的信息,车次,票价等不同。
先定义好各种行为,抽象类BuyTickets:
public abstract class BuyTickets { protected abstract String userName(); protected abstract String chooseTicket(); protected abstract String payMoney(); public void buyTicketSuccess() { System.out.println(userName() + "购买:" + chooseTicket() + "价格:" + payMoney() + "成功!"); }}
用户购买:
public class UserOne extends BuyTickets { @Override protected String userName() { return "张三"; } @Override protected String chooseTicket() { return "上海-北京"; } @Override protected String payMoney() { return "550"; }}
public class UserTwo extends BuyTickets { @Override protected String userName() { return "李四"; } @Override protected String chooseTicket() { return "上海-广州"; } @Override protected String payMoney() { return "600"; }}
运行:
public class test { public static void main(String[] args) { BuyTickets one = new UserOne(); BuyTickets two = new UserTwo(); one.buyTicketSuccess(); two.buyTicketSuccess();//张三购买:上海-北京价格:550成功!//李四购买:上海-广州价格:600成功! }}
示例不太好,比较简单.
模板方法就是提供了一个很好的代码复用平台。当不变的行为和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行为搬迁到单一的地方。这样就帮助子类摆脱重复的不变行为的纠缠–《大话设计模式》
源码地址
本文地址:http://blog.csdn.net/ProdigalWang/article/details/76056552
阅读全文
0 0
- 设计模式之模板方法模式模板方法模式
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- 设计模式之模板方法
- Java设计模式之模板方法模式
- javascript中this和super用法
- kafka 安装配置
- Linux下 GCC编译总结
- Android初中高级开发工程师面试复习点
- 广度/宽度优先搜索(BFS)
- 设计模式之模板方法模式
- Tar打包、压缩与解压缩到指定目录的方法
- iOS 关于取消延迟执行函数 performSelector与cancelPreviousPerformRequestsWithTarget
- 插入排序
- Java入门基础之【修饰符】6
- Android 判断字符是否是汉字
- linux下配置jdk
- 如何将SQLite数据库(dictionary.db文件)与apk文件一起发布
- Ubuntu下安装VIM