您的位置:首页 > 移动开发 > Unity3D

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

2017-09-06 21:21 579 查看
 

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();


 

 

 

文章整理自书籍《设计模式与游戏完美开发》 菜升达 著
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: