行为型模式之模板方法模式

模板方法模式(Template Method Pattern)

模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,并允许子类在不改变算法结构的情况下重写算法中的某些步骤。
模板方法模式通过将算法封装成一个模板方法和一系列具体的步骤方法,使得子类可以按需实现这些具体步骤方法,从而实现算法的定制化。

模板方法模式的核心思想是:定义一个抽象类,其中包含一个模板方法和多个抽象方法,模板方法定义了算法的骨架,而抽象方法由具体子类来实现。

提供demo版代码更容易理解

/**
 * @author zhou
 *  抽象类
 */
abstract class AbstractClass {
    // 模板方法
    public void templateMethod() {
        concreteMethodA();
        abstractMethod();
        concreteMethodB();
    }

    // 具体方法A
    public void concreteMethodA() {
        System.out.println("执行具体方法A");
    }

    // 具体方法B
    public void concreteMethodB() {
        System.out.println("执行具体方法B");
    }

    // 抽象方法,由子类实现
    public abstract void abstractMethod();
}

/**
 * @author zhou
 *  具体子类
 */
class ConcreteClass extends AbstractClass {
    @Override
    public void abstractMethod() {
        System.out.println("执行具体子类的实现");
    }
}

/**
 * @author zhou
 *  客户端使用
 */
public class Main {
    public static void main(String[] args) {
        AbstractClass abstractClass = new ConcreteClass();
        abstractClass.templateMethod();
    }
}

我们定义了一个抽象类 AbstractClass,其中包含一个模板方法 templateMethod() 和两个具体方法 concreteMethodA() 和 concreteMethodB()。
还定义了一个抽象方法 abstractMethod(),由具体子类来实现。
具体子类 ConcreteClass 继承自抽象类,并重写了抽象方法 abstractMethod() 来实现特定的功能。
在 Main 类的 main 方法中,我们创建了一个具体子类对象 ConcreteClass,然后调用 templateMethod() 方法来执行算法的骨架。

该示例展示了模板方法模式的基本结构和使用方式。抽象类定义了模板方法和一些具体的步骤方法,其中部分步骤方法由具体子类来实现。
通过模板方法,算法的骨架被固定,而具体的实现可以在子类中灵活变化,从而实现了算法的定制化和扩展性。

你可能感兴趣的:(计算机基础,模板方法模式,java,开发语言)