TemplateMethod模式

                 父类已经提供好了算法模板,子类负责具体实现各步算法。在使用TemplateMethod模式时一定对算法的分析很透彻,不然模板定下来,一旦改变就很困难了。

                 TemplateMethod模式在Android框架中使用的很多。例如Activity对象的几个状态。

                

                    其中就定义了onCreate(),onStart()等等方法。

                   下面是类图

                  

 

代码实现

#ifndef ABSTRACTCLASS_H

#define ABSTRACTCLASS_H
 
class AbstractClass
{
public:
    AbstractClass();
    virtual ~AbstractClass() = 0;
    void templateMethod();
protected:
    virtual void method_1() = 0;
    virtual void method_2() = 0;
};
 
#endif // ABSTRACTCLASS_H
 

#include "abstractclass.h"

 
AbstractClass::AbstractClass()
{
}
AbstractClass::~AbstractClass()
{
}
void AbstractClass::templateMethod()
{
    method_1();
    method_2();
}
 

#ifndef CONCREATECLASS_1_H

#define CONCREATECLASS_1_H
 
#include "abstractclass.h"
 
class ConcreateClass : public AbstractClass
{
public:
    ConcreateClass();
    ~ConcreateClass(){}
protected:
    void method_1();
    void method_2();
};
 
#endif // CONCREATECLASS_1_H
 

#include "concreateclass.h"

 
#include <iostream>
using namespace std;
 
ConcreateClass::ConcreateClass()
{
 
}
void ConcreateClass::method_1()
{
    cout << "method_1\n";
}
void ConcreateClass::method_2()
{
    cout <<"method_2\n";
}
 

#include <iostream>

 
using namespace std;
#include "concreateclass.h"
 
int main()
{
    AbstractClass *p = new ConcreateClass;
    p->templateMethod();
    delete p;
    return 0;
}
 
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值