代理模式:为其他对象提供一种代理以控制对这个对象的访问。
UML图:
从图中可以看出,当我们要访问RealSubject时,是通过访问ProxySubject来间接访问RealSubject。其实很好理解,代码我就不贴了。
下面我们说说动态代理:
动态代理就是动态的生成代理类,而不需要我们手动生成(如ProxySubject)可以增加代码的复用性。
Subject类:
RealSubject类:
ProxyHandler动态代理类:必须实现InvocationHandler
TestAgency测试类: