小工具知识网

当前位置: 首页 > 行业知识 > 设计模式之模板方法模式

行业知识

设计模式之模板方法模式

2026-11-10 20:37:09 来源:互联网转载

��计模式专栏: http://t.csdnimg.cn/4Mt4u

目录

1.概述

2.结构

3.实现

4.总结


1.概述

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

        模板方法模式是一种代码复用的基本技术,定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构可重定义该算法的某些特定步骤。在使用模板方法时,很重要的一点是模板方法应当指明哪些操作是可以被重写的,以及哪些是必须被重写的。

2.结构

        模板方法模式的UML类图如下:

角色定义:

AbstractClass是抽象类:其实也就是一抽象模板,定义并实现了一个模版方法。这个模版方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现。顶级逻辑也有可能调用一些具体方法。

ConcreteClass实现类:实现父类所定义的一个或多个抽象方法。每一个AbstractClass都可以有任意多个ConcreteClass与之对应,而每一个ConcreteClass都可以给出这些抽象方法(也就是顶级逻辑的组成步骤)的不同实现,从而使得顶级逻辑的实现各不相同。ConcreteClassA和ConcreteClassB是两个不同的实现类。

3.实现

抽象类定义:

class AbstractClass {public:    virtual ~AbstractClass() {}    virtual void primitiveOperation1() = 0;    virtual void primitiveOperation2() = 0;    void templateMethod() {        primitiveOperation1();        primitiveOperation2();    }};

 实现类定义:

class ConcreteClassA : public AbstractClass {public:        void primitiveOperation1() override {        cout 

上一篇:浪潮服务器新消息怎么关闭?

下一篇:客户对接sdk怎么获取服务器?