基本信息
文件名称:Unity游戏开发中必备的设计模式之外观模式详解.docx
文件大小:17.48 KB
总页数:6 页
更新时间:2025-05-22
总字数:约2.92千字
文档摘要

Unity游戏开发中必备的设计模式之外观模式详解

目录一、外观模式定义二、外观模式说明三、实现游戏主程序1、游戏主架构设计2、实现说明3、使用外观模式的优点四、结论

一、外观模式定义

外观模式(Facade)在GoF中的解释:为子系统定义一组统一的接口,这个高级接口会让子系统更容易被使用。

所以,外观模式的重点在于,它能够将系统内部的互动细节隐藏起来,并提供一个简单方便的接口。

二、外观模式说明

示意图表示:整合子系统并提供一个高级的界面让客户端使用。

其中的参与者具体说明:

client(客户端、用户)

从原本需要操作多个子系统改为只需要面对一个整合后的界面。

subSystem(子系统)

原本会由不同的客户端(非同一系统相关)来操作,改为只会由内部系统之间交互使用。

Facade(统一对外的界面)

整合所有子系统的接口及功能,并提供高级界面(或接口)供客户端使用。

接受客户端的信息后,将信息传送给负责的子系统。

具体来说,外观模式可以让客户端使用简单的界面来操作一个复杂的系统,并且减少客户端要与之互动的系统数量,让客户端能够专心处理与本身有关的事情。

三、实现游戏主程序

1、游戏主架构设计

2、实现说明

子系统对外接口类-PBaseDefenseGame

///summary

///Describe:整合所有子系统的接口及功能

////summary

publicclassPBaseDefenseGame

//使用单例

privatestaticPBaseDefenseGame_instance;

publicstaticPBaseDefenseGameInstance

if(_instance==null)

_instance=newPBaseDefenseGame();

return_instance;

//场景状态

privateboolm_bGameOver=false;

//游戏系统

privateGameEventSystemm_GameEventSystem;

privateCampSystemm_CampSystem;

privateStageSystemm_StageSystem;

///summary

///初始化

////summary

publicvoidInitinal()

m_bGameOver=false;

//游戏系统

m_GameEventSystem=newGameEventSystem(this);

m_CampSystem=newCampSystem(this);

m_StageSystem=newStageSystem(this);

//...

//释放系统游戏

publicvoidRelease()

//游戏系统

m_GameEventSystem.Release();

m_CampSystem.Release();

m_StageSystem.Release();

m_CharacterSystem.Release();

//...

///summary

///更新

////summary

publicvoidUpdate()

//游戏系统更新

m_GameEventSystem.Update();

m_CampSystem.Update();

m_StageSystem.Update();

//...

//游戏状态

publicboolThisGameIsOver()

returnm_bGameOver;

//...

}

战斗状态类调用Facade接口

///summary

///Describe:战斗场景

////summary

publicclassBattleState:ISceneState

publicBattleState(SceneStateControllerController):base(Controller)

this.StateName=BattleState;

//开始

publicoverridevoidStateBegin()

PBase