11.17

代理模式是一种结构型设计模式,其核心思想是:通过一个 “代理对象” 来控制对 “目标对象” 的访问。代理对象作为客户端与目标对象之间的中介,既能保证客户端正常访问目标对象,又能在访问前后附加额外操作(如权限校验、日志记录、延迟加载等),从而实现对目标对象的间接控制。
核心角色
代理模式通常包含 3 个核心角色:
抽象主题(Subject):定义目标对象和代理对象的共同接口(或抽象类),确保代理对象能替代目标对象被客户端使用。
真实主题(Real Subject):实现抽象主题的具体对象,是代理对象所代表的 “真实业务逻辑载体”,也是客户端最终需要访问的对象。
代理(Proxy):实现抽象主题,内部持有真实主题的引用;客户端通过代理访问真实主题,代理在调用真实主题的方法前后可添加额外逻辑(如前置检查、后置处理)。
分类与特点
根据代理的创建时机,代理模式可分为静态代理和动态代理:

  1. 静态代理
    特点:代理类在编译期手动编写完成,与真实类的关系在编译时就已确定。
    优势:实现简单,逻辑清晰。
    缺点:代理类与真实类一一对应,若需代理多个类,会产生大量重复代码,维护成本高。
posted @ 2025-11-17 14:08  为啥不懂就问  阅读(5)  评论(0)    收藏  举报