zoukankan      html  css  js  c++  java
  • 设计模式之代理模式

    所谓代理,是指具有与被代理对象相同的接口的类,客户端必须通过代理与被代理的目标类进行交互,而代理一般在交互的过程中(交互前后),进行某些特定的处理。

    通俗一点就是说我想找个女朋友,但是要去约会,要和女孩子玩才能够找到女朋友,但是我是一个很害羞的人,所以我就去找媒婆给我找一个现成的女票,我不用去关系媒婆事怎么找的,用什么方式找的,我就继续打我的游戏,做我的事情,

    代理模式又分为动态代理和静态代理,动态代理分为(jdk动态代理和cglid动态代理)

    代理模式是面向接口的

    1,静态代理

    代码:

    1-1接口方法

    1-2代理对象

    1-3目标对象

    代理对象和目标对象都实现了接口,但是代理对象并不去做真正的逻辑处理,而是委托目标对象去做,它就自己做自己的其他事情(Spring AOP就很好的利用了代理模式)

    1-4客户端(主函数模拟)

     

    由上面的静态代理种可以看出它其实很不灵活,当我接口里面新增方法的时候,代理(Proxy)里面就要新增方法,不然调用不了,这样代码就会很冗余

    所以引入了动态代理模式,动态代理的核心技术是反射,

    2,动态代理(jdk)

    2-1代理类

    与前面的静态代理不同的是,当借口新增方法的时候我不需要手动的在代理类(Proxy)里去新增方法,我只需要通过反射的方式动态的去调用目标对象的方法,用jdk代理需要实现 InvocationHandler() 接口

    2-2客户端(主函数)

    3.cglib代理

    通过继承的方式来实现,具体实现以后作更新

    生命不止,折腾不息
  • 相关阅读:
    Golang1.14.2 环境的安装
    Golang Module快速入门
    VS Code配置Go语言开发环境
    Go语言Mac、Linux、Windows 下交叉编译
    centerOS7 Yum 安装lnmp环境
    初步了解Fork/Join框架
    聊聊并发(七)——Java中的阻塞队列
    如何快速成长为技术大牛
    多线程-interrupt(),isInterrupted(),interrupted()(转)
    Rabbit MQ
  • 原文地址:https://www.cnblogs.com/steakliu/p/11183939.html
Copyright © 2011-2022 走看看