美文网首页
设计模式(结构型)-- 代理模式

设计模式(结构型)-- 代理模式

作者: zhujunhua | 来源:发表于2020-09-15 09:13 被阅读0次

    结构型模式主要总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决特定应用场景的问题。
    结构型模式包括:代理模式、桥接模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式。

    代理模式的原理与实现

    代理模式(Proxy Design Pattern):在不改变原始类(或叫被代理类)的情况下,通过引入代理类来给原始类附加功能。
    一般情况下,我们让代理类和原始类实现同样的接口。
    但是,如果原始类并没有定义接口,并且原始类代码并不是我们开发维护的。在这种情况下,我们可以通过让代理类继承原始类的方法来实现代理模式。

    动态代理的原理与实现

    动态代理(Dynamic Proxy),就是我们不事先为每个原始类编写代理类,而是在运行的时候,动态地创建原始类对应的代理类,然后在系统中用代理类替换掉原始类。
    静态代理需要针对每个类都创建一个代理类,并且每个代理类中的代码都有点像模板式的“重复”代码,增加了维护成本和开发成本。对于静态代理存在的问题,我们可以通过动态代理来解决。

    代理模式的应用场景

    代理模式常用在业务系统中开发一些非功能性需求,比如:监控、统计、鉴权、限流、事务、幂等、日志。我们将这些附加功能与业务功能解耦,放到代理类统一处理,让程序员只需要关注业务方面的开发。
    除此之外,代理模式还可以用在 RPC、缓存等应用场景中。

    参考:
    极客时间-设计模式之美

    相关文章

      网友评论

          本文标题:设计模式(结构型)-- 代理模式

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