大话设计模式之模板方法模式

模板方法模式(Template Method Pattern)是一种行为设计模式,它定义了一个算法的框架,将特定步骤的实现延迟到子类中。模板方法模式通过在父类中定义算法的骨架,而将具体步骤的实现留给子类来完成,从而使子类可以重新定义算法的特定步骤而不改变算法的整体结构。

在模板方法模式中,通常会包含两种角色:

  1. 抽象类(Abstract Class):定义了一个模板方法,其中包含算法的框架和具体步骤的声明,可以包含具体方法、抽象方法或钩子方法。

  2. 具体子类(Concrete Subclass):实现了抽象类中的具体步骤,完成算法的具体实现。

cpp 复制代码
// 抽象类
class AbstractClass {
public:
    // 模板方法
    void templateMethod() {
        step1();
        step2();
        step3();
    }

    // 具体步骤的声明
    virtual void step1() = 0;
    virtual void step2() = 0;
    virtual void step3() = 0;
};

// 具体子类
class ConcreteClass : public AbstractClass {
public:
    void step1() override {
        std::cout << "Step 1" << std::endl;
    }

    void step2() override {
        std::cout << "Step 2" << std::endl;
    }

    void step3() override {
        std::cout << "Step 3" << std::endl;
    }
};

int main(int argc, char *argv[])
{
    ConcreteClass concrete;

    // 使用模板方法
    concrete.templateMethod();


    return 0;
}

/*
在这个示例中,AbstractClass 是抽象类,其中定义了模板方法 templateMethod(),该方法包含了算法的框架和具体步骤的声明。ConcreteClass 是具体子类,它实现了抽象类中的具体步骤。

通过模板方法模式,我们可以在父类中定义算法的整体结构,而将具体实现延迟到子类中。这样可以使得子类可以根据需要重新定义特定步骤,同时保持算法的一致性。
*/

觉得有帮助的话,打赏一下呗。。

相关推荐
口袋物联1 小时前
设计模式之适配器模式在 C 语言中的应用(含 Linux 内核实例)
c语言·设计模式·适配器模式
MobotStone1 小时前
大数据:我们是否在犯一个大错误?
设计模式·架构
7***n753 小时前
前端设计模式详解
前端·设计模式·状态模式
兵bing4 小时前
设计模式-装饰器模式
设计模式·装饰器模式
雨中飘荡的记忆5 小时前
深入理解设计模式之适配器模式
java·设计模式
雨中飘荡的记忆6 小时前
深入理解设计模式之装饰者模式
java·设计模式
老鼠只爱大米6 小时前
Java设计模式之外观模式(Facade)详解
java·设计模式·外观模式·facade·java设计模式
qq_172805596 小时前
Go 语言结构型设计模式深度解析
开发语言·设计模式·golang
佛祖让我来巡山1 天前
设计模式深度解析:策略模式、责任链模式与模板模式
设计模式·责任链模式·策略模式·模版模式
__万波__1 天前
二十三种设计模式(三)--抽象工厂模式
java·设计模式·抽象工厂模式