美文网首页
六大原则 动态代理

六大原则 动态代理

作者: 不存在的里皮 | 来源:发表于2019-05-17 17:06 被阅读0次

参考

  1. 六大原则
  2. 代理模式 介绍了三种代理:静态代理、Proxy、cglib
  3. java 动态代理详解
    • 介绍了动态代理具体案例
    • 代理模式的三种角色:
      1. AppServiceImpl: 委托类
      2. InvokeHandler: 中介类
      3. 动态生成的class: 代理类, 由Proxy运行时动态生成
    • 代理模式的三种角色是如何配合工作的:
    1. InvokeHandler通过持有委托类对象的引用的方式,与委托类建立静态代理联系。在此,InvokeHandler为中介类
    2. 然后,通过动态生成类的方式,创建代理类,与中介类建立联系。

动态代理、装饰模式的实践

  • 动态代理:mybatis的PooledConnection
  • 装饰模式:java 过滤流FilterInputStream是装饰者,节点流则是被装饰者。

装饰者模式和代理模式的区别

代理模式中,中介类与委托类的关系,在编写中介类时就确定了。中介类会控制对委托类对象的访问,。
装饰者模式的装饰关系是在运行时才知道,比如下面的代码。

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

相关文章

  • 六大原则 动态代理

    参考 六大原则 代理模式 介绍了三种代理:静态代理、Proxy、cglib java 动态代理详解介绍了动态代理具...

  • 0x09.动态代理和Spring AOP原理简介

    [TOC] 动态代理 JDK的动态代理是通过实现目标类的接口来创建代理类,借助里式替换原则通过聚合目标类,在接口方...

  • 面试系列~动态代理实现与原理

    动态代理有JDK动态代理, CGLIB动态代理, SpringAOP动态代理 一,JDK动态代理  jdk动态代理...

  • 编程常用的设计模式

    动态代理和静态代理 静态代理 动态代理 静态代理与动态代理的区别 JDK中的动态代理和CGLIB 实现动态代理的方...

  • 【设计模式Android】中介者模式

    设计模式Android 其他相关文章:【设计模式Android】设计模式六大原则【设计模式Android】代理模式...

  • Spring的AOP原理分析

    一 动态代理 动态代理分为JDK动态代理和CGLIB动态代理 jdk动态代理 被代理类(目标类)和代理类必须实现同...

  • 设计模式

    设计模式六大原则[设计模式六大原则(1):单一职责原则][设计模式六大原则(2):里氏替换原则][设计模式六大原则...

  • aop编程基石java动态代理

    一、静态代理的问题 违反了开闭原则,每代理一个接口,就要修改代理类 二、动态代理的原理 1、对象的生命周期 jav...

  • 设计原则和设计模式

    1. 代理模式 1.1. 静态代理和动态代理 静态代码的问题与缺陷 静态代理违反了开闭原则 可扩展性差 可维护性差...

  • 设计模式之代理模式

    代理分为静态代理和动态代理。 动态代理又包括基于JDK的动态代理、基于CGlib 的动态代理、基于Aspectj实...

网友评论

      本文标题:六大原则 动态代理

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