学习笔记,原文链接 https://refactoringguru.cn/design-patterns/proxy
能提供真实服务对象的替代品给客户端使用。 代理接收客户端的请求并进行一些处理 (访问控制和缓存等), 然后再将请求传递给服务对象。代理对象拥有和服务对象相同的接口, 这使得当其被传递给客户端时可与真实对象互换。
YouTubeCacheProxy 类的 popularVideos() 方法是缓存机制的实现,确保只有在缓存为空时才调用 youtubeService.popularVideos(),这避免了重复获取数据。