外观模式
外观模式其实很简单,就是把一系列的方法进行封装。比如说以下这个游戏有两个怪物,一个是小怪一个是boss。当游戏难度的不同时怪物的血量会不同。请看如下代码:
class Monster
{
private:
int HP;
public:
Monster(int HP)
{
this->HP = HP;
}
};
class Small_monster:public Monster
{
public:
Small_monster(int HP):Monster(HP)
{
}
};
class Boss_monster:public Monster
{
public:
Boss_monster(int HP):Monster(HP)
{
}
};那么在客户端要使用的话会这样做:
class Client
{
public:
static client_func()
{
//easy level
vector<Monster*> easy_level;
Monster* small = new Small_monster(200);
Monster* boss = new Boss_monster(2000);
easy_level.push_back(small);
easy_level.push_back(boss);
//middle level
vector<Monster*> middle_level;
Monster* small = new Small_monster(2000);
Monster* boss = new Boss_monster(20000);
easy_level.push_back(small);
easy_level.push_back(boss);
//hard level
vector<Monster*> hard_level;
Monster* small = new Small_monster(20000);
Monster* boss = new Boss_monster(200000);
easy_level.push_back(small);
easy_level.push_back(boss);
}
};
通过上述代码可以看到,
为了
本文介绍了一种软件设计模式——外观模式,并通过一个游戏怪物血量调整的例子展示了如何使用该模式来简化客户端代码。通过封装不同的游戏难度级别的怪物创建过程,使得客户端调用更加简洁。
275

被折叠的 条评论
为什么被折叠?



