摘錄自:設計模式與遊戲完美開發
十年磨一劍,作者将設計模式理論巧妙地融入到實踐中,以一個遊戲的完整實作呈現設計模式的應用及經驗的傳承 《軒轅劍》之父——蔡明宏、資深遊戲制作人——李佳澤、Product Evangelist at Unity Technologies——Kelvin Lo、信仁軟體設計創辦人—— 賴信仁、資深3D遊戲美術——劉明恺 聯合推薦全書采用了整合式的項目教學,即以一個遊戲的範例來應用23種設計模式的實作貫穿全書,讓讀者學習到整個遊戲開發的全過程和作者想要傳承的經驗,并以淺顯易懂的比喻來解析難以了解的設計模式,讓想深入了解此領域的讀者更加容易上手。
using UnityEngine;
using System.Collections;
namespace DesignPattern_Proxy
{
// 制訂RealSubject和Proxy所共用遵偱的介面
public abstract class Subject
{
public abstract void Request();
}
// 定義Proxy所代表的真正物件
public class RealSubject : Subject
{
public RealSubject(){}
public override void Request()
{
Debug.Log("RealSubject.Request");
}
}
// 持有指向RealSubject物件的reference以便存取真正的物件
public class Proxy : Subject
{
RealSubject m_RealSubject = new RealSubject();
// 權限控制
public bool ConnectRemote{get; set;}
public Proxy()
{
ConnectRemote = false;
}
public override void Request()
{
// 依目前狀態決定是否存取RealSubject
if( ConnectRemote )
m_RealSubject.Request();
else
Debug.Log ("Proxy.Request");
}
}
}
using UnityEngine;
using System.Collections;
using DesignPattern_Proxy;
public class ProxyTest : MonoBehaviour {
// Use this for initialization
void Start () {
UnitTest();
}
//
void UnitTest () {
// 產生Proxy
Proxy theProxy = new Proxy();
// 透過Proxy存取
theProxy.Request();
theProxy.ConnectRemote = true;
theProxy.Request();
}
}