【每天一个java设计模式(十三)】 - 模板模式

x33g5p2x  于2021-12-23 转载在 Java  
字(1.3k)|赞(0)|评价(0)|浏览(309)

模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

模板模式的实现:

  1. 创建抽象模板类
//模板类
public abstract class TemplateClass {
    public void templateMethod(){
        specificMethod();
        method1();
        method1();
    }

    public void specificMethod(){
        System.out.println("模板中规定的特殊方法");
    }

    public abstract void method1();

    public abstract void method2();
}
  1. 创建两个具体的类,实现模板的两种方式

方式一

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("根据模板指定的方案二的第二步");
    }
}
  1. 测试模板模式
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设计模式(十四)】 - 解释器模式

相关文章