您的位置:首页 > 其它

行为设计模式---模板方法模式(Template Method)

2014-09-30 07:57 483 查看
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

Template.h

#ifndef _TEMPLATE_H_

#define _TEMPLATE_H_

class Account

{

public:

    virtual void start() = 0;

    virtual void allow() = 0;

    virtual int MaxLimit() = 0;

    void withdraw(int);

};

class AccountNormal : public Account

{

public:

   virtual void start();

   virtual void allow();

   virtual int MaxLimit();

};

class AccountPower : public Account

{

public:

   virtual void start();

   virtual void allow();

   virtual int MaxLimit();

};

#endif

Template.cpp

#include <iostream>

#include "Template.h"

using std::cout;

using std::endl;

void Account::withdraw(int account)

{

     start();

     int limit = MaxLimit();

     if (account < limit)

        allow();

     else

        cout << "not allow" << endl;

}

void AccountNormal::start()

{

     cout << "AccountNormal start" << endl;

}

void AccountNormal::allow()

{

     cout << "AccountNormal allow" << endl;

}

int AccountNormal::MaxLimit()

{

    return 3000;

}

void AccountPower::start()

{

    cout << "AccountPower start" << endl;

}

void AccountPower::allow()

{

    cout << "AccountPower allow" << endl;

}

int AccountPower::MaxLimit()

{

    return 8000;

}

main.cpp

#include "Template.h"

int main()

{

    AccountNormal normal;

    normal.withdraw(2000);

    AccountPower power;

    power.withdraw(9000);

    return 0;

}

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: