读书人

易学设计形式六 代理模式(Proxy)

发布时间: 2012-10-30 16:13:36 作者: rapoo

易学设计模式六 代理模式(Proxy)
代理模式(Proxy)为另一个对象提供一个替身或占位符以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。




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


public class RealSubject extends Subject {public void request() {System.out.println("From real subject");}}


public class ProxySubject extends Subject {private RealSubject realSubject;public ProxySubject() {realSubject = new RealSubject();}public void request() {preRequest();realSubject.request(); //输出一次realSubject.request(); //输出二次postRequest();}public void preRequest() {System.out.print("before request");}public void postRequest() {System.out.println("after request");}}


public class Client {public static void main(String[] args) {Subject subject = new ProxySubject();subject.request();}}


输出:

before requestFrom real subject
From real subject
after request

有个疑问:代理类里面输出两次才能打出真实类的一句语句,很怪,怪怪怪

读书人网 >软件开发

热点推荐