【Unity与23种设计模式】代理模式(Proxy)

来源:互联网 发布:人工智能湖南论坛 编辑:程序博客网 时间:2024/06/05 10:47

 

GoF中定义:

“提供一个代理者位置给一个对象,好让代理者可以控制存取这个对象。”

 

代理模式多用来优化资源的加载

当资源已经加载过时,使用原来的资源

当资源没有加载过时,开始加载

此过程由代理模式控制

 

代理模式就像是一个过滤器

只有在一定条件下才可以执行一定的代码

这个条件可以在外部进行控制

 

//原来的功能类public abstract class Subject {    public abstract void Request();}public class RealSubject : Subject {    public RealSubject() { }    public override void Request()    {        Debug.Log("RealSubject.Request");    }}
//代理public class Proxy : Subject {    RealSubject m_RealSubject = new RealSubject();    public bool ConnectRemote { get; set; }    public Proxy() { }    public override void Request()    {        if (ConnectRemote)            m_RealSubject.Request();        else            Debug.Log("Proxy.Request");    }}
//测试类public class TestProxy {    void UnitTest() {        Proxy theProxy = new Proxy();        theProxy.Request();        theProxy.ConnectRemote = true;        theProxy.Request();    }}
//测试结果//Proxy.Request();//RealSubject.Request();

 

 

 

文章整理自书籍《设计模式与游戏完美开发》 菜升达 著

原创粉丝点击