1.概念
为其他对象提供一种代理以控制对这个对象的访问。
2.UML图:
3.代码:
//抽象角色: public abstract class Subject { abstract public void request(); } //真实角色:实现了Subject的request()方法。 public class RealSubject extends Subject { public void request() { System.out.println( "From real subject." ); } } //代理角色: public class ProxySubject extends Subject { private RealSubject realSubject; //以真实角色作为代理角色的属性 public void request() //该方法封装了真实对象的request方法 { if ( realSubject == null ) { realSubject = new RealSubject(); } realSubject.request(); //此处执行真实对象的request方法 } } //客户端调用: Subject sub= new ProxySubject(); Sub.request(); |
4.应用场景:
代理服务器