美文网首页
装饰器模式和静态代理

装饰器模式和静态代理

作者: Jessewo | 来源:发表于2017-08-13 17:07 被阅读42次

最近在研究Rxjava和retrofit源码,于是才有了这个小疑惑。
查了资料发现两种有一点点区别,在于代理类的 构造方法:比如

接口
public interface Subject {
     void doAction();
}

装饰器模式

public class Decorator implements Subject{

       private Subject subject;
       public Proxy(Subject subject){
             //具体被装饰类由调用者传入,所以动态
            this.subject = subject;
       }
       public void doAction(){
             ….//do sth
             subject.doAction();
             ….//do sth
       }
}

静态代理

public class Proxy implements Subject{

       private Subject subject;
       public Proxy(){
             //很明确具体代理哪个实现类,所以写死
            subject = new RealSubject();
       }
       public void doAction(){
             ….//do sth
             subject.doAction();
             ….//do sth
       }
}

当然以上也仅仅是一家之言,综合来讲两者区分并不是太明显,硬是将两者区分开并没有太多实际意义。。。
具体业务场景根据需求随意用~

相关文章

  • 设计模式总结

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

  • 代理模式

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

  • 动态代理

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

  • 装饰者模式

    装饰者模式 符合开放关闭原则 装饰者模式和代理模式非常像,代理模式更加强调的是一种静态的关系,即一开始就确定了代理...

  • 设计模式

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

  • 装饰器模式和静态代理

    最近在研究Rxjava和retrofit源码,于是才有了这个小疑惑。查了资料发现两种有一点点区别,在于代理类的 构...

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

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

  • 设计模式之——静态代理

    前言 静态代理常和动态代理、装饰者模式一起提起,原因是静态代理和其余二者总有着较大的相似和关联,本篇文章将对静态代...

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

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

  • 六、门面模式与装饰器模式详解

    8.门面模式 8.1.课程目标 1、掌握门面模式和装饰器模式的特征和应用场景 2、理解装饰器模式和代理模式的根本区...

网友评论

      本文标题:装饰器模式和静态代理

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