• 23种设计模式(八)代理模式(阁瑞钛伦特软件-九耶实训)


    常说的设计模式是23种设计模式,分为3大类:

    • 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
    • 结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
    • 行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。

    上次咱们把创建型模式的5种模式都介绍完了,还额外介绍了简单工厂模式。

    上次咱们说了“适配器模式”。今天来看一看结构型模式中的“代理模式”。

    结构型模式重点在于结构的变化。“代理模式”的“代理”可以帮助我们理解其初衷。

    生活中有很多事情需要有“代理”。例如“租房需要中介代理找房”、“结婚需要婚庆公司代理婚庆”等等这样的事情。

    首先,我们有一个接口,可以说是“要做什么事情”

    例如“要结婚”

    例如“要租房”

    其次,具体实现接口的类,可以说是“真实实现要做的事情”。

     

    例如“具体实现要结婚的事情”

    例如“具体实现要租房的事情”

    最后,用代理模式搞定前后事宜。

    例如“房屋中介带你看房及后续签订合同”

    例如“婚庆公司为你进行典礼及收尾”

    测试类中应用:

     

    上面用的是静态代理模式,下面我们来用“动态代理模式”看看效果。

    在原有接口和真实类的基础上,构建“动态代理模式”。

     

    在这里,我们重点应用Proxy的“动态代理模式”叫做“JDK动态代理”,利用反射机制,达到动态获取对象并执行功能方法,也就是上述的“程序流程”。(Proxy的应用,可参考API说明文档中的说明,加以理解)。

    测试方法应用:

     

    又到了讲故事的时间了。我们来设置一个《西游记》里的一个场景。

    话说猪悟能(也就是后来的猪八戒),在高老庄想娶高翠兰为妻。本来正常情况,猪悟能与高翠兰结婚。

    但是高翠兰妈妈不同意,于是派人去请道士降伏猪悟能。又恰巧遇见唐僧和孙悟空师徒,于是请孙悟空去降伏猪妖。

     

    结果让猴子做代理,猪悟能就倒霉了,想不到猴子会变成高翠兰蒙骗结婚,还被降伏,拜在唐僧门下,获法号“八戒”。自此猪八戒跟随唐僧去西天拜佛求经。

    不得不说,猴子这个“代理”做的称职又到位,不光是降伏,连猪都带走了。

     从上述场景设定中,我们能分析出,“结婚”是主要目的,真实类是高翠兰实现“结婚”的行为,猪八戒要调用高翠兰的行为,正常情况下,和高翠来结婚。但猴代理出现,更改了结婚行为,突然给老猪安排得“妥妥当当”。

     

     接口

     

    真实类:

     

    猪类: 

    正常情况调用,高翠兰与猪悟能结婚了:

     

    但是猴代理出现了:

    静态代理:

     猪悟能调用了静态代理:

     

     

    JDK动态代理:

     

     突然结婚对象变成了猴子,请求出老猪的心理阴影面积。

     

    即使真实类不是高翠兰,只要“大圣”这个金牌代理在,猪八戒就铁定去西天拜佛求经

     

  • 相关阅读:
    不用Swagger,那我用啥?
    2023-10-9 腾讯云智校招后端开发二面(附答案)
    Matlab:非线性函数的运算
    王道数据结构6.2(图的应用)
    华为OD 最大岛屿体积(100分)【java】A卷+B卷
    使用Tensorboard在 PyTorch 中进行可视化
    Go语言代码断行规则详解
    SpringCloud 微服务全栈体系(十)
    齐岳离子液体[C1MIm]SbF6/cas:885624-41-9/1,3-二甲基咪唑六氟锑酸盐
    export , export default,import完整用法
  • 原文地址:https://blog.csdn.net/m0_69234258/article/details/126084633