//抽象类,公共接口 public interface Subject { void Request(); }
//真实对象,被代理对象 using UnityEngine; public class RealSubject : Subject { public void Request() { Debug.Log("do something"); } }
//代理者 using UnityEngine; public class Proxy : Subject { private Subject target; public Proxy(Subject s) { target = s; } public void Request() { Debug.Log("做事前"); target.Request(); Debug.Log("做事后"); } }
//测试 using UnityEngine; public class testProxy : MonoBehaviour { private void Start() { Subject subject = new Proxy(new RealSubject()); subject.Request(); } }
代理者可以在访问被代理之前和之后做一些操作。