【设计模式学习笔记】代理模式

代理模式

不改变原始类,引入代理类给原始类增加功能。

1,原始类是自己写的代码:

  • 组合
    将原始类和代理类都基于接口实现。代理类的方法内调用原始类,并在前后增加新的代码以实现新功能。

2,原始类是第三方库,无法修改或者没有基于接口实现:

  • 继承
    代理类继承自原始类,然后通过super调用原始类里的方法,并在前后增加新的代码以实现新功能。

3,问题和解决方案

  • 问题
    如果原始类有很多个,比如50个,则需要写50个代理类,增加类的个数,提高了代码维护成本。同时代理类内的代码有很多是重复的。

  • 解决方案
    使用动态代理。
    反射:动态获取程序信息以及动态调用对象的功能。

posted @ 2022-05-18 12:02  Shengjie  阅读(14)  评论(0编辑  收藏  举报