TemplateMethod模式

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

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

                 TemplateMethod模式_第1张图片

                    其中就定义了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;
}
 
 
 
 

 

你可能感兴趣的:(android,框架,算法,delete)