【Java】23种设计模式——14.模板方法模式
定义模板方法模式(Template Method Pattern),:这是一种行为型设计模式,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中实现。
定义角色
[*]抽象类(AbstractClass):定义算法骨架和基本操作
[*]具体类(ConcreteClass):实现抽象类中的抽象操作
应用场景
[*]一次性事项算法不变的部分,将可变行为留给子类实现
[*]控制子类扩展,只允许拓展特定操作。
[*]多个类包含相同算法,但某些步骤实现不同。
使用
游戏框架模板方法。
[*]抽象类 (游戏抽象方法)、
/**
* 测试模板模式
* @Author:lyj
* @Date:2025/5/20 10:29
*/
public class TestTemplate {
/**
* 测试模板模式
* @author lyj
* @date 2025-05-20
*/
@Test
public void test(){
// 板球
Game game1 = new Crickeet();
game1.play();
System.out.println("=======");
// 足球
Game game2 = new FootBall();
game2.play();
}
}
[*]具体类 (板球游戏,足球游戏)
/**
* 模板模式-具体类: 板球
* @Author:lyj
* @Date:2025/5/20 10:21
*/
public class Crickeet extends Game{
/**
* 游戏初始化
*/
@Override
public void initialize() {
System.out.println("初始化板球游戏...");
}
/**
* 开始游戏
*/
@Override
public void startPlay() {
System.out.println("开始板球游戏...");
}
/**
* 结束游戏
*/
@Override
public void endPlay() {
System.out.println("结束板球游戏...");
}
}/**
* 模板模式-具体类:足球游戏
* @Author:lyj
* @Date:2025/5/20 10:26
*/
public class FootBall extends Game {
/**
* 初始化游戏
*/
@Override
public void initialize() {
System.out.println("初始化足球游戏……");
}
/**
* 开始游戏
*/
@Override
public void startPlay() {
System.out.println("开始足球游戏……");
}
/**
* 结束游戏
*/
@Override
public void endPlay() {
System.out.println("结束足球游戏……");
}
}
客户端运行:
// 板球
Game game1 = new Crickeet();
game1.play();
System.out.println("=======");
// 足球
Game game2 = new FootBall();
game2.play();运行结果:
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]