手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

java设计模式之代理设计模式(Proxy)

时间:2024-10-12 18:46:28

1、所谓的代理严格来讲就是两个子类共同实现一个接口,其中一个子类负责真实的业务实现,而另外的子类负责辅助真实业务主体的操作。

java设计模式之代理设计模式(Proxy)

2、现在我们实现代理设计模式,定义一个共同的主题接口:interface ISubject { public void save(); //核心功能是救人}

java设计模式之代理设计模式(Proxy)

3、核心实现实现这个主题接口:class RealSubject implements ISubject { public void save() { System.out.println("真正的实现方法!"); } }

java设计模式之代理设计模式(Proxy)

4、代理实现主题接口:class ProxySubject implements ISubject { private ISubject realSubject; public ProxySubject(ISubject subject) { this.realSubject = subject; } public void broke() { System.out.println("破门而入"); } public void get() { System.out.println("得到奖励"); } public void save() { this.broke();//真实操作前的准备 this.realSubject.save();//调用真实的业务 this.get();//操作后的首位 } }

java设计模式之代理设计模式(Proxy)

5、在main方法中调用代理调用来实现真实的业务调用。package com.gwol酆璁冻嘌f;interface ISubject { public void save(); //核心功能是救人}class RealSubject implements ISubject { public void save() { System.out.println("真正的实现方法!"); } }class ProxySubject implements ISubject { private ISubject realSubject; public ProxySubject(ISubject subject) { this.realSubject = subject; } public void broke() { System.out.println("破门而入"); } public void get() { System.out.println("得到奖励"); } public void save() { this.broke();//真实操作前的准备 this.realSubject.save();//调用真实的业务 this.get();//操作后的首位 } }public class Proxy { public static void main(String[] args) { ISubject subject = new ProxySubject(new RealSubject()); //通过代理类对象发出,利用代理类来实现真实的业务调用 subject.save(); //救人的核心操作 }}

java设计模式之代理设计模式(Proxy)

6、为了实现代理对象和真实对象的解耦,我们使用工厂类来创造主题。package com.gwolf;interface ISubject { pu芟鲠阻缒blic void save(); //核心功能是救人}class RealSubject implements ISubject { public void save() { System.out.println("真正的实现方法!"); } }class ProxySubject implements ISubject { private ISubject realSubject; public ProxySubject(ISubject subject) { this.realSubject = subject; } public void broke() { System.out.println("破门而入"); } public void get() { System.out.println("得到奖励"); } public void save() { this.broke();//真实操作前的准备 this.realSubject.save();//调用真实的业务 this.get();//操作后的首位 } }class Factory { public static ISubject getInstance() { return new ProxySubject(new RealSubject()); }}public class Proxy { public static void main(String[] args) { ISubject subject = Factory.getInstance(); //通过代理类对象发出,利用代理类来实现真实的业务调用 subject.save(); //救人的核心操作 }}

java设计模式之代理设计模式(Proxy)
© 手抄报圈