代理模式

  • 代理模式
    在生活中,我们经常见到这样的场景,
    如:租房中介、售票黄牛、婚介、经纪人、快递、 事务代理、非侵入式日志监听等,这些都是代理模式的实际体现。
    代理模式(Proxy Pattern)的定义也非常简单,是指为其他对象提供一种代理,以控制对这个对象的访问。
    代理对象在客服端和目标对象之间起到中介作用,代理模式属于结构型设计模式。
    使用 代理模式主要有两个目的:一保护目标对象,二增强目标对象。

在代码中,我们想到代理,就会理解为是代码增强,其实就是在原本逻辑前后增加一些逻辑,而调用者无感知。
代理模式属于结构型
模式,有静态代理和动态代理。

  • 静态代理
    静态代理 举个例子:人到了适婚年龄,父母总是迫不及待希望早点抱孙子。
    而现在社会的人在各 种压力之下,都选择晚婚晚育。
    于是着急的父母就开始到处为自己的子女相亲,比子女 自己还着急。
    这个相亲的过程,就是一种我们人人都有份的代理。

在分布式业务场景中,我们通常会对数据库进行分库分表,
分库分表之后使用 Java 操作时,就可能需要配置多个数据源,
我们通过设置数据源路由 来动态切换数据源。

  • 动态代理
    动态代理和静态对比基本思路是一致的,只不过动态代理功能更加强大,随着业务的扩 展适应性更强。
    如果还以找对象为例,使用动态代理相当于是能够适应复杂的业务场景。
    不仅仅只是父亲给儿子找对象,如果找对象这项业务发展成了一个产业,进而出现了媒 婆、婚介所等这样的形式。
    那么,此时用静态代理成本就更大了,需要一个更加通用的 解决方案,要满足任何单身人士找对象的需求。
posted @ 2020-10-27 23:21  CodeLee0106  阅读(63)  评论(0)    收藏  举报