Unity设计模式之代理模式

来源:互联网 发布:软件app 编辑:程序博客网 时间:2024/06/06 06:44

代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
组成:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。
代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。
真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。

老规矩上代码:
首先定义一个抽象任务类,当然也能是接口

abstract class Subject    {        public abstract void Request();    }

接着是被代理方,也就是请求任务者

    class RealSubject :Subject    {        public override void Request ()        {            Debug.Log ("真是的请求");        }    }

然后是代理(Proxy)

     class Proxy:Subject    {        RealSubject realSubject;        public override void Request ()        {            if (realSubject == null) {                realSubject = new RealSubject ();                //如果需要传参则设置RealSubject构造函数即可            }            realSubject.Request ();        }    }

最后依然是客户端代码

     class Client :MonoBehaviour    {        void Start()        {            Proxy proxy = new Proxy ();            proxy.Request ();        }    }
0 0