标签:功能 直接 增强 strong 接口 修改 引用 代码 代码执行
代理模式 【增强目标类的作用。】
代理模式是指,为其他对象提供一种代理以控制对这个对象的访问。
在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用。 -
---百度百科《代理模式
换句话说,使用代理对象,是为了在不修改目标对象的基础上,增强主业务逻辑。
客户类真正的想要访问的对象是目标对象,但客户类真正可以访问的对象是代理对象。
客户类对目标对象的访问是通过访问代理对象来实现的。当然,代理类与目标类要实现同一个接口。
原有类具有一些功能,但是所具有的功能又不够的情况下:需要对 原有类 进行增强。
但是根据 设计原则规定,在不能改变原有类的前提下,如何实现对原有类功能进行增强呢?
代理类的诞生了!!!
创建代理类的意义:不修改目标类(即,原有类) 原有代码的前提下,实现增强目标类的功能。
重点注意: 最后代码执行时,真正使用的是 代理类。
分类: 静态代理 和 动态代理
静态代理: 指的是程序还没有运行,两个类之间就已经建立了代理关系。
动态代理: 指的是程序在运行过程中,才生成一个代理对象。而该代理对象 作用就是 为目标对象 作 代理。
要从直观的代码中 鉴别 静态代理 和 动态代理,观察代码即可:
通常情况下:
只要程序中 需要自己定义代理类,这就是静态代理。
程序无需定义代理类, 但是 代理对象是通过 工厂 或 工具 在运行时 生成的,此时的代理 为 动态代理。
标签:功能 直接 增强 strong 接口 修改 引用 代码 代码执行
原文地址:https://www.cnblogs.com/penguin1024/p/12144466.html