代理模式跟之前的策略模式,装饰模式差距不大,但是代理模式不能无限递归,比策略模式更加解耦
通过当前对象调用某个方法,同时也调用对象内部属性对象的方法。
个人感觉无需继承也可以,继承了以后替换起来成本比较低
//父类抽象类 abstract class Subject { public abstract void Request(); } //实现类 public class RealSubject extends Subject { public void Request(){ System.out.println("真实的请求"); } } //代理类 public class Proxy extends Subject { Subject subject; @Override public void Request() { // TODO Auto-generated method stub if(subject==null){ subject=new RealSubject(); } subject.Request(); } }
下面是实现
//实现方法,简洁调用 public class Context { public static void main(String[] args) { Proxy p=new Proxy(); p.Request(); } }