门面模式与适配器模式

一、门面模式

门面模式:提供统一接口访问子系统接口

1、包含角色
外观系统对外的统一接口
子系统类的集合;并不知道外观角色的存在,需要为了配合外观角色而做特殊处理或修改
2、举例

        原本开关灯要分别操作各个房间的灯,现在设置总开关更方便。在代码中定义Light接口规定开关灯方法,DiningLight、HallLight、LivingRoomLight类实现该接口,各自实现开关灯具体操作。LightFacade类作为总开关一样的外观类,持有这三种灯的实例,用lightOn()和lightOff()方法就能一键统一控制所有灯的开关。

3、优点
  • 减少系统依赖,降低客户端和子系统耦合;
  • 提高灵活性,简化客户端使用;
  • 可灵活设定访问权限,提高安全性
二、适配器模式

        适配器模式就是将一个类的接口转换成客户期望的另一个接口,使原本接口不兼容的类能协作,简单来说就是包装目标类使之适配调用方使用。

三、二者区别

门面模式是为子系统提供一个统一的高层接口,隐藏子系统的复杂性,让子系统更易于使用,就像设置总开关统一开关各个房间的灯

在SLF4J中的体现:SLF4J定义统一日志API,如info()等,调用者只需用这些API,而无需了解底层Log4j、Logback等,隐藏了日志框架的复杂性,类似门面为子系统提供简单接口

适配器模式主要用于将不兼容的接口转化为可兼容的接口,使原本无法一起工作的类能够协作工作,就像电源适配器将不同插头适配到插座上

在SLF4J中的体现:SLF4J需适配不同日志框架,将自身API调用转为对应框架能理解的应用,像适配器转换接口让不同对象协同工作,不过适配较隐蔽

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/79812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot Actuator指标收集:Micrometer与Prometheus集成

文章目录 引言一、Spring Boot Actuator基础二、Micrometer简介与集成三、基本指标收集与配置四、自定义业务指标实现五、与Prometheus集成六、实战案例:API性能监控总结 引言 在现代微服务架构中,监控应用程序的健康状况和性能指标变得至关重要。Sprin…

【Android面试八股文】Android应用进程的启动流程【二】

应用进程 1.1 Android系统进程的启动过程: 1、init进程fork出Zygote进程后,Zygote进程会创建一个服务端socket,等待AMS发起socket请求。 同时,由Zygote进程fork出的SystemServer进程会启动各项系统服务,其中就包含了A…

基于Django的AI客服租车分析系统

基于Django的AI客服租车分析系统 【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】AI智能客服与用户交互指导手册 【技术栈】 ①:系统环境:Python 3.8,Django 4.2框架 ②:开发环境&a…

全同态加密医疗数据分析集python实现

目录 摘要一、前言二、全同态加密与医疗数据分析概述2.1 全同态加密(FHE)简介2.2 医疗数据分析需求三、数据生成与预处理四、系统架构与流程4.1 系统架构图五、核心数学公式六、异步任务调度与(可选)GPU 加速七、PyQt6 GUI 设计八、完整代码实现九、自查测试与总结十、展望…

linux 搭建 dvwa 渗透测试环境

linux 安装 dvwa 1、分为4个部分,搭建dvwa渗透测试环境2、安装centos 7.63、安装apache http server4、安装mysql5、安装php6、运行dvwa 1、分为4个部分,搭建dvwa渗透测试环境 本文基于centos 7.6 搭建 dvwa 渗透测试环境 安装一个linux系统安装apache…

stm32(gpio的四种输出)

其实GPIO这个片上外设的功能: 用于控制IO引脚。 CPU就如同大脑,而这些片上外设就如同四肢一样的关系 如图 —————————————————————————————— OK类比了以上 其实GPIO是有 八种工作模式的 这八种工作模式 因为GPIO是面向IO…

Flask(3): 在Linux系统上部署项目

1 前言 说实话,我并不想接触linux系统,要记住太多的命令。我更习惯windows系统,鼠标点点,只要记住少量的命令就可以了。 但是我选择了python,就注定无法逃避linux系统。虽然python也能在windows上很好的运行&#xff0…

WIN10重启开机不用登录,直接进入桌面

我们个人机不需要登录。 步骤1 置,帐户,登录选项,密码。 输入当前密码后,直接下一步。 再次重启,就会发现不需要密码了。

idea中导入从GitHub上克隆下来的springboot项目解决找不到主类的问题

第一步:删除目录下的.idea和target,然后用idea打开 第二步:如果有需要,idea更换jdk版本 原文链接:https://blog.csdn.net/m0_74036731/article/details/146779040 解决方法(idea中解决)&#…

数字友好战略视域下数字安全核心要素的理论解构与实践路径

本论文聚焦数字友好战略框架下的数字安全核心要素,系统阐述数字安全的理论内涵、战略价值与实践路径。通过多维度分析数字安全在个人、企业与国家层面的作用机制,结合国际法规标准与前沿技术实践,揭示数字安全对构建可持续数字生态的关键支撑…

管理与维护samba服务器

允许 Linux、Unix 系统与 Windows 系统之间进行文件和打印机共享,使得不同操作系统的用户能够方便地访问和共享资源,就像在同一局域网中的 Windows 计算机之间共享资源一样。 server01安装Samba服务器 [rootserver ~]# rpm -qa | grep samba [rootserver…

前端面试每日三题 - Day 8

这是我为准备前端/全栈开发工程师面试整理的第八天每日三题练习,涵盖 JavaScript 闭包与执行上下文、React 性能优化与虚拟 DOM、以及高可用消息队列架构设计。 ✅ 题目 1:深入理解 JavaScript 中的闭包与执行上下文 📘 解析: 闭…

996引擎-拓展变量:物品变量

996引擎-拓展变量:物品变量 测试代码参考资料对于Lua来说,只有能保存数据库的变量才有意义。 至于临时变量,不像TXT那么束手束脚,通常使用Lua变量就能完成。 测试代码 -- 存:物品拓展strfunction (player)local where =

现代Web应用中的高级模糊搜索实现:多条件组合查询与性能优化

搜索功能是现代Web应用中提升用户体验的核心组件。本文将深入探讨如何实现一个高效、灵活的前端模糊搜索解决方案,支持多条件组合查询、精确匹配、模糊匹配以及时间范围筛选。 需求分析与设计目标 核心需求场景 多字段模糊搜索:支持在多个字段中同时搜…

Selenium 实现自动化分页处理与信息提取

Selenium 实现自动化分页处理与信息提取 在 Web 自动化测试或数据抓取场景中,分页处理是一个常见的需求。通过 Selenium,我们可以实现对多页面内容的自动遍历,并从中提取所需的信息。本文将详细介绍如何利用 Selenium 进行自动化分页处理和信…

VS qt 联合开发环境下的多国语言翻译

添加Linguist 文件方法,如同添加类文件的方式,那样: 其他跟QT的一样的流程,另外在main函数里要注册一下, QTextCodec::setCodecForLocale(textCodec); QTranslator translator5; QString trans5 fi…

第十七节:高频开放题-React未来发展趋势

服务端组件(RSC)普及 React Compiler对开发模式的影响 React 未来发展趋势深度解析:服务端组件与编译器的革命性变革 一、服务端组件(RSC)的全面普及与生态重构 1. RSC 的核心理念与技术优势 React Server Component…

Python爬虫实战:获取B站查询数据

一、引言 1.1 研究背景 随着互联网的迅猛发展,视频分享平台积累了海量的数据资源。以 B 站为例,其丰富的视频内容和活跃的用户群体蕴含着巨大的价值。对 B 站搜索数据进行爬取和分析,有助于洞察用户兴趣、市场趋势以及内容创作方向,为市场调研、用户行为分析和内容推荐系…

【Rust 精进之路之第3篇-变量观】`let`, `mut` 与 Shadowing:理解 Rust 的变量绑定哲学

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025-04-20 引言:为数据命名,Rust 的第一道“安全阀” 在上一篇文章中,我们成功搭建了 Rust 开发环境&#xff0c…

stm32(IO口的最高速度)

如果我们写入速度 快到一种程度 肯定就不能完全按理想的来了 当我们写01快起来 中间的保持时间就会越来越少 就逐渐往下面变化 所以其实 我们如果改变上升时间 和 下降时间 还是能将最后的波形 变成为正常的波形的。 不用追求高速 ,满足要求下 选低速的即可。 因…