设计模式—行为型模式之模板方法模式
2024-01-01 23:35:16
设计模式—行为型模式之模板方法模式
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。
模板方法(Template Method)包含两个角色:
- 抽象类/抽象模板(Abstract Class)
- 具体子类/具体实现(Concrete Class)
举例
做饭抽象类:
/**
* 做饭步骤抽象类
*/
public abstract class CookTemplate {
/**
* 定义流程
* 模板方法模式核心
* 父类可以实现某些步骤
* 留一些关键内容给子类
*/
public void cook(){
heating();
addFood();
addSalt();
stirfry();
end();
}
//加热方法
public void heating(){
System.out.println("开火加热....");
}
//添加食物
public abstract void addFood();
//加盐
public abstract void addSalt();
//翻炒
public void stirfry(){
System.out.println("进行翻炒中...");
};
//出锅
public void end(){
System.out.println("出锅了....");
};
}
炒茄子类:
public class StirFriedEggplantCook extends CookTemplate{
@Override
public void addFood() {
System.out.println("加一斤茄子");
}
@Override
public void addSalt() {
System.out.println("加一勺盐");
}
}
测试类如下:
public class TemplateTest {
public static void main(String[] args) {
CookTemplate cookTemplate = new StirFriedEggplantCook();
cookTemplate.cook();
}
}
运行结果如下:
模板方法模式,是由父类定义好操作流程,由子类实现一些关键的步骤,然后调用父类制定好流程的方法。
文章来源:https://blog.csdn.net/qq_41243472/article/details/135330412
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!