Template模式

模板模式是一种行为型设计模式,它定义了一个算法的骨架,并将一些步骤延迟到子类中。使得子类可以不改变算法的结构,即可重定义该算法的某些特定步骤。可以提高代码的复用性、可扩展性和灵活性。

  • 主要解决:一些方法通用,却在每一个子类都重新写了这一方法。
  • 何时使用:有一些通用的方法。
  • 如何解决:将这些通用算法抽象出来。
  • 关键代码:在抽象类实现,其他步骤在子类实现。

Java

public abstract class AbstractClass {

    public void templateMethod() {
        this.step1();
        this.step2();
        this.step3();
    }

    public abstract void step1();

    public abstract void step2();

    public void step3() {
        // 默认实现
    }
}

public class ConcreteClass1 extends AbstractClass {

    @Override
    public void step1() {
        // 具体实现
    }

    @Override
    public void step2() {
        // 具体实现
    }
}

public class ConcreteClass2 extends AbstractClass {

    @Override
    public void step1() {
        // 具体实现
    }

    @Override
    public void step2() {
        // 具体实现
    }

    @Override
    public void step3() {
        // 重写默认实现
    }
}