java代理模式,装饰器模式
代理模式和装饰器模式(也叫装饰者模式),一般都是指接口
代理模式,一般在编译的时候,用户不知道调用的接口的服务。
而装饰模式里,用户是可以设置接口里的服务的。
//代理模式 public class Proxy implements Subject{ private Subject subject; public Proxy(){ //关系在编译时确定 subject = new RealSubject(); } public void doAction(){ …. subject.doAction(); …. } }
//代理的客户 public class Client{ public static void main(String[] args){ //客户不知道代理委托了另一个对象 Subject subject = new Proxy(); … } }
//装饰器模式 public class Decorator implements Component{ private Component component; public Decorator(Component component){ this.component = component } public void operation(){ …. component.operation(); …. } }
//装饰器的客户 public class Client{ public static void main(String[] args){ //客户指定了装饰者需要装饰的是哪一个类 Component component = new Decorator(new ConcreteComponent()); … } }