java设计模式24_模板模式
来源:互联网 发布:毕向东java教程全集 编辑:程序博客网 时间:2024/05/17 06:45
模板模式
在模板模式中,抽象类公开了定义的方法/模板来执行它的方法。 它的子类可以根据需要重写方法实现,但调用的方式与抽象类定义的方式相同。 此模式属于行为模式类别。
实现
这个实现实例中,将创建一个Game抽象类,它定义了一个模板方法设置为final的操作,因此它不能被覆盖。 Cricket 和 Football 是扩展Game并覆盖它的方法的具体类。将使用Game演示使用模板模式
代码
package com.test;//第1步,创建一个模板方法为final的抽象类abstract class Game { abstract void initialize(); abstract void startPlay(); abstract void endPlay(); // template method public final void play() { // initialize the game initialize(); // start game startPlay(); // end game endPlay(); }}// 第2步, 创建扩展上述类的具体类class Cricket extends Game { @Override void endPlay() { System.out.println("Cricket Game Finished!"); } @Override void initialize() { System.out.println("Cricket Game Initialized! Start playing."); } @Override void startPlay() { System.out.println("Cricket Game Started. Enjoy the game!"); }}class Football extends Game { @Override void endPlay() { System.out.println("Football Game Finished!"); } @Override void initialize() { System.out.println("Football Game Initialized! Start playing."); } @Override void startPlay() { System.out.println("Football Game Started. Enjoy the game!"); }}// 第3步,使用游戏的模板方法-play()演示一个定义的玩游戏的方式public class Test { public static void main(String[] args) { Game game = new Cricket(); game.play(); System.out.println(); game = new Football(); game.play(); }}
运行结果:
Cricket Game Initialized! Start playing.Cricket Game Started. Enjoy the game!Cricket Game Finished!Football Game Initialized! Start playing.Football Game Started. Enjoy the game!Football Game Finished!
阅读全文
0 0
- java设计模式24_模板模式
- java设计模式_模板方法模式
- 设计模式_模板方法模式(Java)
- Java 设计模式_模板模式
- 设计模式_模板方法模式(C++)
- 大话设计模式_模板方法模式
- 设计模式_模板方法模式
- 设计模式_模板方法模式
- 设计模式_模板方法模式
- 设计模式02_模板方法模式
- 设计模式_模板方法模式
- 设计模式_模板方法模式(17)
- Java设计模式_行为型_模板方法模式_论房地产开发
- Java设计模式---模板模式
- java 设计模式-模板模式
- java设计模式----模板模式
- java设计模式--模板模式
- Java设计模式---模板模式
- 故障:Can't bind to local 8601 for debugger
- eclipse非正常关闭,再次启动界面一直停在Loading org.eclipse.ui.editors 的解决办法
- java设计模式22_空对象模式
- java设计模式23_策略模式
- 正则表达式菜鸟教程4元字符
- java设计模式24_模板模式
- 欢迎使用CSDN-markdown编辑器
- java设计模式25_访问者模式
- java-SE-3
- 【详细资料】中科微AT6558系列卫星定位SOC芯片规格书
- 正则表达式菜鸟教程5运算符优先级
- java设计模式26_动态代理模式
- 怎么就溢出了?
- Android开发中那些让你相见恨晚的方法、类或接口(2)