模板方法模式
Posted lyy12332133
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板方法模式相关的知识,希望对你有一定的参考价值。
## 来源:菜鸟教程
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!
以上是关于模板方法模式的主要内容,如果未能解决你的问题,请参考以下文章