概念
- 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行

主要角色
- 抽象类/抽象模板(Abstract Class)
具体子类/具体实现(Concrete Class) ```java /**
抽象类/抽象模板 */ public abstract class CookTemplate {
/**
- 定义算法: 定义好了模板
- 父类可以实现某些步骤
- 留关键给子类 */ public void cook(){ //定义算法步骤 heating(); //v addfood(); addsalt(); stirfry(); //v end(); //v }
//加热方法 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("出锅....");
};
}
```java/*** 具体子类/具体实现*/public class AutoCookMachine extends CookTemplate{@Overridepublic void addfood() {System.out.println("放了三个小白菜");}@Overridepublic void addsalt() {System.out.println("放了三勺盐");}}
应用场景
- Spring的整个继承体系都基本用到模板方法; BeanFactory.getBean(1,2,3,4)—A1—-A2—-A3—-A4(全部被完成)
- JdbcTemplate、RedisTemplate都允许我们再扩展…..
- 我们自己的系统也应该使用模板方法组织类结构
