11.26

代理模式的优缺点围绕其 “中介控制、功能扩展” 的核心设计目标展开,同时也受限于代理层的引入和实现方式,具体如下:
一、核心优点
符合 “开闭原则”,灵活扩展功能无需修改目标对象(真实主题)的代码,即可通过代理对象附加额外逻辑(如日志、权限、缓存等)。例如,给已有接口添加权限校验时,只需新增代理类,无需改动原有业务逻辑,降低了代码耦合。
解耦客户端与目标对象,屏蔽细节客户端仅与代理对象交互,无需关心目标对象的具体实现、初始化方式(如重量级对象的延迟加载)、位置(如远程服务的网络通信)等细节。比如 RPC 框架中,客户端通过本地代理调用远程服务,无需手动处理网络连接、序列化等复杂操作。
控制目标对象的访问,保障安全性代理可作为 “访问过滤器”,实现对目标对象的权限控制、访问频率限制等。例如,保护代理仅允许授权用户调用敏感方法,拒绝非法访问,提升系统安全性。
简化客户端操作,提升使用体验代理可封装目标对象的复杂初始化或依赖管理逻辑。例如,虚拟代理(延迟加载)在客户端首次调用时才初始化重量级对象(如大图片、数据库连接池),避免不必要的资源消耗,同时客户端无需关心初始化细节。
增强目标对象的功能,无需侵入业务代理可在目标方法调用前后添加通用逻辑(如日志记录、事务管理、异常处理),实现 “横切关注点” 的复用。例如,所有接口的方法调用都需要记录日志,可通过一个动态代理统一实现,无需在每个目标类中重复编写日志代码。

posted @ 2025-11-26 16:51  为啥不懂就问  阅读(1)  评论(0)    收藏  举报