在模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
模板模式的实现:
- 创建抽象模板类
//模板类
public abstract class TemplateClass {
public void templateMethod(){
specificMethod();
method1();
method1();
}
public void specificMethod(){
System.out.println("模板中规定的特殊方法");
}
public abstract void method1();
public abstract void method2();
}
- 创建两个具体的类,实现模板的两种方式
方式一
public class ConcreteClass1 extends TemplateClass {
@Override
public void method1() {
System.out.println("根据模板指定的方案一的第一步");
}
@Override
public void method2() {
System.out.println("根据模板指定的方案一的第二步");
}
}
方式二
public class ConcreteClass2 extends TemplateClass {
@Override
public void method1() {
System.out.println("根据模板指定的方案二的第一步");
}
@Override
public void method2() {
System.out.println("根据模板指定的方案二的第二步");
}
}
- 测试模板模式
public class TemplateMain {
public static void main(String[] args) {
TemplateClass template1 = new ConcreteClass1();
template1.templateMethod();
TemplateClass template2 = new ConcreteClass2();
template2.templateMethod();
}
}
- 工厂模式:【每天一个java设计模式(一)】 - 工厂模式
- 抽象工厂模式: 【每天一个java设计模式(二)】 - 抽象工厂模式
- 单例模式:【每天一个java设计模式(三)】 - 单例模式
- 原型模式:【每天一个java设计模式(四)】 - 原型模式
- 建造者模式: 【每天一个java设计模式(五)】 - 建造者模式
- 适配器模式 : 【每天一个java设计模式(六)】 - 适配器模式
- 代理模式: 【每天一个java设计模式(七)】 - 代理模式模式
- 桥接模式:【每天一个java设计模式(八)】 - 桥接模式
- 装饰器模式:【每天一个java设计模式(九)】 - 装饰器模式
- 外观模式:【每天一个java设计模式(十)】 - 外观模式
- 享元模式:【每天一个java设计模式(十一)】 - 享元模式
- 组合模式:【每天一个java设计模式(十二)】 - 组合模式
下一节:
解释器模式:【每天一个java设计模式(十四)】 - 解释器模式