标签:例子 模板方法模式 行为型模式 div 开始游戏 void stat 开始 started
## 来源:菜鸟教程
1、什么是模板方法模式?
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
2、解决什么问题?
一些方法通用,却在每一个子类都重新写了这一方法。
3、什么时候使用?
子类有一些通用的方法。
4、例子
定义父类
public abstract class BaseGame { /** * 游戏加载 */ abstract void initialize(); /** * 开始游戏 */ abstract void startPlay(); /** * 游戏结束 */ abstract void endPlay(); public final void play() { initialize(); startPlay(); endPlay(); } }
定义两个子类
public class Cricket extends BaseGame { @Override void initialize() { System.out.println("Cricket BaseGame initialized!"); } @Override void startPlay() { System.out.println("Cricket BaseGame started!"); } @Override void endPlay() { System.out.println("Cricket BaseGame end!"); } }
public class Football extends BaseGame { @Override void initialize() { System.out.println("Football BaseGame initialized!"); } @Override void startPlay() { System.out.println("Football BaseGame started!"); } @Override void endPlay() { System.out.println("Football BaseGame end!"); } }
测试
public class Test { public static void main(String[] args) { BaseGame football = new Football(); football.play(); BaseGame cricket = new Cricket(); cricket.play(); } }
结果
Football BaseGame initialized! Football BaseGame started! Football BaseGame end! Cricket BaseGame initialized! Cricket BaseGame started! Cricket BaseGame end!
标签:例子 模板方法模式 行为型模式 div 开始游戏 void stat 开始 started
原文地址:https://www.cnblogs.com/lyy12332133/p/10203067.html