设计模式之十三------Template(模板)

本文通过制作面条的例子介绍了模板方法设计模式。该模式将不变的部分定义在一个基类中,允许子类通过重写特定步骤来实现变化的部分。这种方式减少了代码重复,并确保了核心流程的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

在我们生活中,我们的做的事情都有一些共性,例如,很多事情都有类似的操作过程,这些东西应用到编程中也是一样的;如果我们把每件事情都抽象成一个类,这样会有大量重复的工作;

解决方案:

把其中的共性抽象出来,把它们在基类中完成,对于那些变化的,则写成抽象方法,让子类去完成;这就是Template模式

源代码:

#include <IOSTREAM>

using namespace  std;

class Template{

public:

void TemplateMethod()

{

this->Primitive1();

this->Primitive2();

}

protected:

Template(){}

virtual void Primitive1()=0;

virtual void Primitive2()=0;

};

class ConcreateTemplate1:public Template

{

public:

ConcreateTemplate1(){}

protected:

virtual void Primitive1(){

cout<<"做面条1...."<<endl;

}

virtual void Primitive2(){

cout<<"做面条2....."<<endl;

}

};

class ConcreateTemplate2:public Template

{

public:

ConcreateTemplate2(){}

protected:

virtual void Primitive1(){

cout<<"做烩面1....."<<endl;

}

virtual void Primitive2(){

cout<<"做烩面2...."<<endl;

}

};

void main()

{

Template* tem=new ConcreateTemplate1;

tem->TemplateMethod();

delete tem;

tem=new ConcreateTemplate2;

tem->TemplateMethod();

delete tem;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值