您的位置:首页 > 科技 > 能源 > 中国建筑网官网企业文化_湖南疫情最新情况最新消息今天新增病例_营销方案的几个要素_b站推广2024mmm已更新

中国建筑网官网企业文化_湖南疫情最新情况最新消息今天新增病例_营销方案的几个要素_b站推广2024mmm已更新

2024/12/27 6:20:13 来源:https://blog.csdn.net/lishangke/article/details/144499643  浏览:    关键词:中国建筑网官网企业文化_湖南疫情最新情况最新消息今天新增病例_营销方案的几个要素_b站推广2024mmm已更新
中国建筑网官网企业文化_湖南疫情最新情况最新消息今天新增病例_营销方案的几个要素_b站推广2024mmm已更新

1、简述

代理模式(Proxy Pattern)是一种结构型设计模式,用于为其他对象提供一种代理,以控制对这个对象的访问。通过代理模式,我们可以在不修改目标对象代码的情况下扩展功能,满足特定的需求。

在这里插入图片描述

设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git


2、什么是代理模式?

代理模式的核心思想是通过一个代理对象来间接访问目标对象,从而为目标对象增加额外的功能或限制。代理模式的常见用途包括:

  • 控制访问:限制对目标对象的直接访问。
  • 延迟加载:当对象的创建成本较高时,通过代理模式实现按需加载。
  • 增强功能:在目标对象的行为前后添加其他逻辑。

代理模式通常由以下几个角色组成:

  • 抽象主题(Subject):定义目标对象和代理对象的共同接口。
  • 真实主题(RealSubject):实现了抽象主题的真实对象。
  • 代理(Proxy):持有对真实主题的引用,并通过实现抽象主题接口来控制对真实主题的访问。

3、实际案例

3.1 实现静态代理

一个 UserService 提供用户的基本操作,我们通过代理实现日志记录功能。

// 接口定义
public interface UserService {void addUser(String name);
}// 目标类
public class UserServiceImpl implements UserService {@Overridepublic void addUser(String name) {System.out.println("User added: " + name);}
}// 代理类
public class UserServiceProxy implements UserService {private final UserService userService;public UserServiceProxy(UserService userService) {this.userService = userService;}@Overridepublic void addUser(String name) {System.out.println("[LOG] Adding user...");userService.addUser(name);System.out.println("[LOG] User added.")

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com