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());
            …
        }
}

 

posted @ 2019-04-02 17:13  猪是得念来过倒  阅读(121)  评论(0编辑  收藏  举报