美文网首页
静态代理与装饰模式区别(摘抄+理解)

静态代理与装饰模式区别(摘抄+理解)

作者: 炫迈哥 | 来源:发表于2017-03-03 15:26 被阅读0次

主要区别:使用代理模式,代理和真实对象之间的的关系通常在编译时就已经确定了,而装饰者能够在运行时递归地被构造。

自己理解:代理模式的存在是纯粹的功能增强;而装饰者模式有自己的基本大类分类(如披萨,意大利面,焗饭等,装饰的只是调味料而已,如盐,沙拉酱,糖等,拿java.io举例,它有基本的io类如:stringbufferinputstream, fileinputstream等,而filterinputstream中就是一堆调味料,可自行无限组合添加,pushbackinputstream,bufferinputestream等),装饰着模式最大的目的在于极有很多小功能而且相互之间可以无限制组合,将它们全部订为装饰者,可以自由灵活随意组合使用,不用为每一种组合定义一个类去实现。@@装饰着模式为了功能组合增强,代理模式只是纯粹的增强@@

代理模式示例:

//代理模式
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();
             …
        }
}

而装饰者模式:(是不是和java.io.下的代码很相似)

//装饰器模式
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());
            …
        }
}

相关文章

  • 静态代理与装饰模式区别(摘抄+理解)

    主要区别:使用代理模式,代理和真实对象之间的的关系通常在编译时就已经确定了,而装饰者能够在运行时递归地被构造。 自...

  • 代理模式

    一,静态代理 针对于网上大多数静态代理写成装饰者模式(装饰着模式和静态代理的区别https://blog.csdn...

  • 设计模式总结

    相似设计模式的区别 装饰器和静态代理 1、装饰器模式:客户端决定装饰谁(对比静态代理) 2、静态代理:客户端不关心...

  • 动态代理

    先说静态代理,静态代理就是设计模式中的代理模式,形式上与装饰模式一致,但是涵义不同,装饰模式注重新加的修饰功能,代...

  • java中的代理模式与装饰者模式的区别

    java中的代理模式与装饰者模式的区别 代理模式与装饰者模式看起来很像,都实现基础对象实现的接口,在其自身对象中都...

  • 设计模式

    1.代理模式 静态代理; 动态代理: 2.工厂模式 3.装饰模式 4.观察者模式

  • spring(3)动态代理事务操作与AOP

    6. AOP 6.1什么是AOP编程? 6.2 实现方式: 6.3 装饰者模式与静态代理对比: 6.4 动态代理...

  • Java设计模式 - 装饰模式

    装饰模式 装饰模式重在“装饰”二字,这也是与代理模式的最大区别,很多人分不清两者的区别,甚至不假思索地就相信了网上...

  • 一步一步从静态代理写到动态代理

    首先静态代理写法和装饰器模式非常像,只是概念分的很细,本质是没有区别,都是用“真正干活”的类去实现方法,代理只是套...

  • 常用设计模式 2018-09-15

    目录 代理模式 单例模式 命令模式 工厂模式 桥接模式 策略模式 装饰模式 观察者模式 门面模式 代理模式 静态代...

网友评论

      本文标题:静态代理与装饰模式区别(摘抄+理解)

      本文链接:https://www.haomeiwen.com/subject/xmcrgttx.html