博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Template模式
阅读量:4133 次
发布时间:2019-05-25

本文共 1309 字,大约阅读时间需要 4 分钟。

在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架是相同的。Template提供了这种情况的实现框架。

Template.h

//Template.h#ifndef _TEMPLATE_H_#define _TEMPLATE_H_class AbstractClass{public:	virtual ~AbstractClass();	void TemplateMethod();protected:	virtual void PrimitiveOperation1() = 0;	virtual void PrimitiveOperation2() = 0;	AbstractClass();private:};class ConcreteClass1:public AbstractClass{public:	ConcreteClass1();	~ConcreteClass1();protected:	void PrimitiveOperation1();	void PrimitiveOperation2();private:};class ConcreteClass2:public AbstractClass{public:	ConcreteClass2();	~ConcreteClass2();protected:	void PrimitiveOperation1();	void PrimitiveOperation2();private:};#endif //~TEMPLATEH
Template.cpp

#include "Template.h"#include 
using namespace std;AbstractClass::AbstractClass(){}AbstractClass::~AbstractClass(){}void AbstractClass::TemplateMethod(){ this->PrimitiveOperation1(); this->PrimitiveOperation2();}ConcreteClass1::ConcreteClass1(){}ConcreteClass1::~ConcreteClass1(){}void ConcreteClass1::PrimitiveOperation1(){ cout<<"ConcreteClass1...PrimitiveOperation1"<
main.cpp

#include "Template.h"#include 
using namespace std;int main(){ AbstractClass* p1 = new ConcreteClass1(); AbstractClass* p2 = new ConcreteClass2(); p1->TemplateMethod(); p2->TemplateMethod(); return 0;}

转载地址:http://njvvi.baihongyu.com/

你可能感兴趣的文章
AndroidStudio提高编译速度的建议
查看>>
Android混淆配置及总结
查看>>
Android 布局详解
查看>>
Android本地化资源目录详解
查看>>
Android屏幕适配问题详解
查看>>
Android 关于ListView中按钮监听的优化问题(方法一)
查看>>
Android 关于ListView中按钮监听的优化问题(方法二)
查看>>
Java 在本地文件中查找固定字符串
查看>>
Android插件简介
查看>>
Android RecyclerView完全解析
查看>>
Java synchronized 详解
查看>>
Android自绘制控件
查看>>
Handler 机制(一)—— Handler的实现流程
查看>>
Java多线程并发系列之闭锁(Latch)和栅栏(CyclicBarrier)
查看>>
Android Studio常用配置
查看>>
Java内存管理机制
查看>>
[转]探索 Android 内存优化方法
查看>>
面向对象设计原则
查看>>
23种设计模式——创建型设计模式(5种)
查看>>
23种设计模式——结构型设计模式(7种)
查看>>