设计模式-模板模式

学习笔记:模板模式
模式简介

:属于行为型模式,抽象类公开执行它方法的模板。

为什么用

:对于一件事的步骤,子类有不同的细节,父类写好了总的方法,就可以让子类实现具体的细节。比如都是玩,但是玩的具体内容不一样。

怎么样用

:父类里写了抽象方法,总的方法,抽象方法由一个总的方法调用,子类实现了抽象方法,就可以调用具体方法。

注意事项

:总的方法要封装不变的,扩展可变的。

实际举例

:不同的角色加入游戏。


#include <iostream>
#include <vector>
using namespace std;
//生命
class Life {
private:
    string id;
    string name;
    string hp;
    string mp;
public:
    virtual void init() {}
    virtual void addMap() {}
    void play() {
        init();
        addMap();
    }
};
//人物
class Person :public Life {
public:
    void init() {
        cout << "人物数据初始化\n";
    }
    void addMap() {
        cout << "人物加入战场\n";
    }
};
//怪物
class Monster :public Life {
public:
    void init() {
        cout << "怪物数据初始化\n";
    }
    void addMap() {
        cout << "怪物加入战场\n";
    }
};
//管理员
class Administrator :public Life {
public:
    void init() {
        cout << "管理员数据初始化\n";
    }
    void addMap() {
        cout << "管理员加入战场\n";
    }
};
int main() {
    Person* person = new Person();
    person->play();
    Monster* monster = new Monster();
    monster->play();
    Administrator* administrator = new Administrator();
    administrator->play();
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值