好像是一回事:适配器和代理模式

简介:
1、 适配器模式
“适配器”,顾名思义,就是将一个类的接口转换成另外一个接口,使得原本由于接口不兼容不能一起工作的那些类一起工作。在软件开发中,系统的数据和行为都正确,但接口不符时,我们应该考虑适配器。举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),假如现在到了大学后,英语老师要我们学英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文书(注意这里的英文书是实实在在 存在了的),所不变的就是继续听“子曾经曰过”什么什么了。好了,Code is cheap.让代码说话:
Code
适配器模式的使用通常都在软件开发后期或者维护阶段,因为没有哪个开发团队在开发初期愿意把类似的功能类的接口设计的不同,通常都是会先考虑通过重构统一接口。所以这个模式在开发初期应尽量避免使用。
2、 代理模式
代理就是真实对象的代表。”代理模式“为其他对象提供一种代理以控制对这个对象的访问。代理模式其实就是在访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途。
举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),现在到了大学后,我们求知欲望强烈^_^,很想学习英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文书,可是国内没有质量过关的英文版《论语》(或者不权威,我们自己也可以翻译出来^_^)。这时候国外有汉学专家翻译了《论语》,可是版权控制的很严格,我们直接买不到,这个时候有一个出版社被授权在国内出版这本书,这样我们就可以看到原滋原味的外国人翻的《论语》了。现在就来看看英文的“子曾经曰过”什么什么了。上代码:
Code
上面代码中的Proxy和本例中(现实中)的出版社的用途还是有很大的区别的,这里只是举个例子,不妥之处望留意。






本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2009/04/14/1412433.html,如需转载请自行联系原作者
目录
相关文章
|
7天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
6天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
318 130
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
18天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1331 8
|
5天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
17天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1412 87
|
6天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
312 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
5天前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
6天前
|
弹性计算 安全 数据安全/隐私保护
2025年阿里云域名备案流程(新手图文详细流程)
本文图文详解阿里云账号注册、服务器租赁、域名购买及备案全流程,涵盖企业实名认证、信息模板创建、域名备案提交与管局审核等关键步骤,助您快速完成网站上线前的准备工作。
253 82
2025年阿里云域名备案流程(新手图文详细流程)