設計模式在遊戲中的應用--外觀模式(八)
阿新 • • 發佈:2019-02-16
外觀模式(Facade),為子系統中的一組介面提供一個一致的介面,定義一個高層介面,這個介面使得這一子系統更加容易使用。外觀模式相當於KFC裡面的套餐,大多數人去FKC吃中飯,本質其實就是為了填飽肚子,消費者需要主食、飲料和小吃,有了各種套餐之後,消費者去KFC可以選擇各種套餐就能滿足自己的需要,不至於由於自己不會點餐都點主食而造成口渴和難以下嚥的情況。套餐可以滿足大多數人的需求。
MMORPG遊戲中也有著一些外觀模式的應用,例如遊戲中一種套餐可以讓玩家升級到滿級,學習和裝備了最高的技能和裝備。
相關的流程圖如下:
相關的程式碼如下:
// MVC.cpp : 定義控制檯應用程式的入口點。
//
#include "stdafx.h"
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
class Skill
{
public:
Skill(){};
public:
void EquipSkill()
{
cout<<"EquipSkill"<<endl;
}
};
class Level
{
public:
Level(){};
public:
void GetMaxLevel()
{
cout<<"Level Up 100 "<<endl;
}
};
class Equip
{
public:
Equip(){};
public:
void GetBestEquip()
{
cout<<"Top Equip "<<endl;
}
};
class Player
{
public:
Player()
{
pSkill = new Skill();
pLevel = new Level();
pEquip = new Equip();
};
public:
void Superman()
{
pSkill->EquipSkill();
pLevel->GetMaxLevel();
pEquip->GetBestEquip();
}
private:
Skill* pSkill;
Level* pLevel;
Equip* pEquip;
};
void main()
{
Player* player = new Player();
player->Superman();
}
外觀模式是在一些基礎介面之上建立的高階介面,例如在MVC的各個層級之間需要使用外觀模式來生成一些易於呼叫的介面。同時,在遊戲的開發過程當中會使用很多的外部庫,可是這些外部庫的介面不是那麼地人性化,這時我們的第一印象就是對其進行封裝,其本質就是使用外觀模式來得到一些高階的利用我們使用的介面。
還有其實我們的遊戲開發過程當中會有很多的作弊碼,這些作弊碼就是基於我們的遊戲框架作為基礎介面來生成的作弊碼介面。