设计模式之Template Method模式(模板方法模式)

原创 2016年06月02日 13:46:41

模板方法模式总结起来就是灵活运用C++的多态性,灵活运用普通函数,虚函数,纯虚函数的组合,

打个比方,每个人每天的生活都不一样,老师要上课,学生要学习,程序员要编程,但是每个人都需要吃饭与休息,这样我们就可以吧吃饭与休息抽出了,在父类里面强制实现,不同的部分放在子类里面具体实现。在这里为了方便,就把函数的实现写在类里面了,就没有单独写在cpp文件里面了。

1.定义公共功能的实现,无论学生,老师,还是程序员,他们都是人,都需要吃饭与休息,这里可以定义父类,把吃饭与休息的功能在父类里面用普通函数强制实现,当然用虚函数也可以,只要不在子类里面实现就行,

class People
{
public:
	void eat()//父类里面实现的功能强制实现
	{
		printf("吃饭\n");
	}
	void sleep()
	{
		printf("休息\n");
	}
	virtual void work()=0; //纯虚函数在子类里面实现
};

如果需要在父类里面实现的功能还是建议使用普通函数强制实现。

2.定义子类,也就是不同的功能,在子类里面实现,比如学生,老师,程序员,他们的工作都不一样,需要在子类里面具体实现父类里的work功能。

class student:public People
{
public:
	void work()   //子类可以使用普通函数使用
	{
		printf("我是学生,我要上学!!!\n");
	}
};

class teacher:public People
{
public:
	void work()
	{
		printf("我是老师,我要上课!!!\n");
	}
};

class programmer:public People
{
public:
	void work()
	{
		printf("我是程序员,我要写代码!!!\n");
	}
};
3.实际调用,就是多态的实现

People* stu=new student();
stu->eat();
stu->work();
stu->sleep();

People* teach=new teacher();
teach->eat();
teach->work();
teach->sleep();

People* prog=new programmer();
prog->eat();
prog->work();
prog->sleep();

实际调用可以再使用一次Facade模式进行封装,这里就不在赘述。模板设计模式就是灵活运用C++多态的特性,巧妙组合函数来进行实现。





版权声明:本文为博主原创文章,未经博主允许不得转载。

设计模式浅析之--模板方法模式Template Method

设计模式浅析之–模板方法模式Template Method 模板模式被应用的比较多,尤其是在框架设计中,框架的作用在很大程度上就是为你创建一个方便的开发程序的模板,而你只需要实现模板中的一些接口就能完...

Java开发中的23种设计模式详解----模板方法模式(Template Method)

解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1…n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用,先看个关系图:...
  • sjyttkl
  • sjyttkl
  • 2017年06月20日 17:28
  • 182

设计模式(八)the Template method 模板方法模式(类行为型)

1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。 ...

如何让孩子爱上设计模式 ——24.模板方法模式(Template Method Pattern)

如何让孩子爱上设计模式 ——24.模板方法模式(Template Method Pattern)标签: 设计模式初涉描述性文字终于来到23种设计模式的最后一种:模板方法模式,听名字感觉好像很复杂的样子...

c++设计模式:模板方法模式(Template Method Pattern)

定义:模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 钩子的定义:钩子是一种被声明在抽象类中的方法...

c++设计模式之Template Method模板方法模式

设计模式C++学习笔记之九(Template Method模板方法模式) 模板模式也是相当简单的一种模式,而且是比较常用的。模板模式是定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Templ...

Java设计模式之模板方法模式(Template Method)

本文继续介绍23种设计模式系列之模板方法模式。 概述 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的...
  • mzd8341
  • mzd8341
  • 2017年07月11日 11:38
  • 127

Template Method-模板方法模式《Head First 设计模式》

本文总结归纳自《Head First 设计模式》第八章-模板方法模式。用于复习。

设计模式学习笔记(三):模板方法模式【Template Method】(一) 问题提出

学习自《设计模式之禅》
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式之Template Method模式(模板方法模式)
举报原因:
原因补充:

(最多只允许输入30个字)