Java 23种设计模式之外观模式详解

Java 中的 23 种设计模式详解 本文介绍了Java中的23种经典设计模式,主要分为三类:创建型、结构型和行为型模式。创建型模式关注对象创建方式,包括单例模式(确保唯一实例)、原型模式(复制创建)、建造者模式(分步构建复杂对象)和工厂方法模式(子类决定实例化)。文章详细阐述了每种模式的核心思想、实现方式、应用场景和优点,并提供了Java代码示例和注释,帮助开发者理解如何在实践中应用这些模式解决复杂设计问题。 阅读详情
一.  在讲设计模式之前我想问一下,什么交外观模式?
二.  Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种,Facade模式为一组具有类似功能的类群,比如说类库,子系统等等,提供一个一致的简单的界面,这个一致的简单界面就叫做Facade模式。
三.  通俗点讲,当有一组类,他们都具有类似的功能,我们会为这些类统一的提供一个简单的界面,来服务客户端,这就叫做外观模式。
给大家举个例子:
首先我们新建三个子系统类SystemA.java、SystemB.java、SystemC.java:

/*
 * A子系统
 */
public class SystemA {
/*
* A子系统实现功能
*/
public void doSomething() {
System.out.println("实现A子系统功能");
}
}
/*
 * B子系统
 */
public class SystemB {
/*
* B子系统实现功能
*/
public void doSomething() {
System.out.println("实现B子系统功能");
}
}
/*
 * C子系统
 */
public class SystemC {
/*
* C子系统实现功能
*/
public void doSomething() {
System.out.println("实现C子系统功能");
}
}
其次我们新建一个给客户端体提供服务的简单界面类 Facade.java
public class Facade {
private SystemA systemA;
private SystemB systemB;
private SystemC systemC;

public Facade() {
systemA = new SystemA();
systemB = new SystemB();
systemC = new SystemC();
}

public void doABC() {
this.systemA.doSomething();
this.systemB.doSomething();
this.systemC.doSomething();
}
}
最后我们建立客户端类 MainClass.java
public class MainClass {
public static void main(String[] args) {
Facade facade = new Facade();
facade.doABC();
}
}
以上外观模式就已经讲完了,我们现在总结一下,SystemA.java、SystemB.java、SystemC.java 是不是一组具有相似的doSomething功能类呢?
然后我们的Facade.java 类统一的提供了一个服务客户端的doABC 方法呢?是不是可以理解为一个简单的界面类呢?最后我们的客户端类MainClass.java 对Facade.java 类进行调用呢?个人见解,如有疑问欢迎探讨。
现在基本上已经讲完了,下周我会继续为大家讲解剩下的二十三种设计模式之一


设计模式--外观模式java例子 立即下载

相关推荐

外观模式案例(基础案例)

某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块。

外观设计模式

外观设计模式 一、外观设计模式 1、介绍 外观模式(Facade),也叫“过程模式”。 外观模式定义了一个高层接口,用以屏蔽内部子系统的细节,使得客户端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。简化了客户端操作。 2、UML原理类图 外观类(Facade):为客户端提供统一的调用接口,外观类知道哪些子系统负责处理请求,从而将客户端的请求代理给适当子系统对象 客户端(调用者):外观接口的调用者 子系统集合:指模块或者子系统,处理Facade对象指派的任务,功能的实际提供者 3、外观模式的

大树 1484

设计模式-外观模式(讲解及其实现代码)

设计模式-外观模式(讲解及其实现代码)

Java设计模式-外观模式(Facade)

外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。

qq_37400096的博客 2371

Win11上WSL2安装Ubuntu22.04避坑指南:从镜像源到C++环境配置

本文详细介绍了在Win11系统上安装和配置WSL2及Ubuntu22.04开发环境的完整流程与避坑指南。内容涵盖从解决网络安装错误、更换国内镜像源以加速软件更新,到一站式配置C++开发工具链(包括GCC、GDB、CMake等),并提供了提升WSL2使用体验的实用技巧和故障排除方法,帮助开发者高效搭建稳定的Linux开发环境。

weixin_29306261的博客 474

EEGLAB合辑 | 第一节 往EEGLAB导入数据

1、学习Matlab EEGLAB图形界面建立在强大的Matlab脚本语言之上。要使用EEGLAB构建宏命令和执行自定义和自动化处理的全部功能,就需要能够在Matlab中操纵EEGLAB数据结构。由于时间限制,这个wiki没有提供关于Matlab脚本语言的介绍。相反,用户需要在开始研究之前熟悉Matlab。 2、安装EEGLAB和教程文件 首先下载包含教程数据集的EEGLAB(30MB),附下载地址。 (https://sccn.ucsd.edu/eeglab/downloadtoolbox.php) 解压

nvsirgn的博客 5134

7、外观模式

外观模式 文章目录外观模式概述结构结构实现练习源代码抽象外观类案例模式优/缺点与适用环境优点缺点适用环境 概述 外观模式:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式又称为门面模式,是一种对象结构型模式。通过引入一个新的外观角色可以降低原有系统的复杂度,同时降低客户类与子系统的耦合度。在外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户类与子系统的内部复杂性分隔开,使得客户类只需要与外观角色打交道,而不需要与

阿涛的敲码时光 904

从.har文件到Postman集合:一键转换的完整教程(附避坑指南)

本文详细介绍了如何将.har文件高效转换为Postman集合的完整教程,涵盖基础操作到高级技巧,包括认证信息处理、环境变量提取等痛点问题的解决方案。通过抓包工具记录的.har文件,开发者可以快速生成Postman集合,提升API调试与测试效率,特别适合前后端分离开发模式下的团队协作。

weixin_26795617的博客 384

Java设计模式之外观模式(UML类图分析+代码详解)

外观类(Facade): 为调用端提供统一的调用接口, 外观类知道哪些子系统负责处理请求,从而将调用端的请求代理给适当 子系统对象,调用者(Client): 外观接口的调用者,子系统的集合:指模块或者子系统,处理Facade 对象指派的任务,他是功能的实际提供者。

m0_51750419的博客 1974

GB28181协议实战:5分钟搞定海康摄像头SIP注册失败问题(附Wireshark抓包分析)

本文详细解析了海康摄像头在GB28181协议下SIP注册失败的7个关键原因及解决方案,包括网络可达性、鉴权参数、NAT穿越等核心问题。通过Wireshark抓包分析,提供快速定位方法,帮助工程师高效解决SIP注册失败问题,提升实时图像联调效率。

weixin_29212867的博客 553

中兴FTTR光猫变简易OLT:低成本搭建全光监控与局域网实战指南

本文详细介绍了如何将中兴FTTR光猫改造为简易OLT设备,实现低成本全光监控与局域网扩展。通过LOID认证、桥接模式设置及终端数破解,用户可利用二手设备搭建高性能光纤网络,适用于远程监控和长距离组网场景,显著降低部署成本。

chair的专栏 2037

23种java设计模式详解-结构模式-外观模式

1、外观模式: 外观模式(Facade),隐藏了子系统的复杂性,面向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。 2、结构模型: 3、demo: package com.jason.facade; //子功能1 public class Cpu { public void doSomething() { ...

撸起袖子加油干 384

【即插即用模块】注意力篇 | TGRS 2025 | SCPP:独家复现!三特征多尺度注意力融合,涨点必备!

摘要:SCPP(Scale-aware Pyramid Pooling)是一种创新的多尺度特征融合模块,专为U型网络瓶颈设计。它通过局部特征提取(1×1卷积)、多尺度膨胀卷积(1/3/5膨胀率分支)和全局特征聚合(全局平均池化)三重结构,结合SE通道注意力机制和自适应加权融合,显著提升特征表达能力。实验表明,SCPP能有效解决边缘模糊和错误检测问题,在遥感图像分割等任务中表现优异。该模块支持即插即用,适用于各类需要多尺度特征增强的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 944

Java开发中的23种设计模式详解----外观模式(Facade)

外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例) 看下面的实现类: public class CPU { public void startup() { System

sjyttkl的专栏 358

抑制电磁干扰(EMI)的实用电路技术

抑制电磁干扰(EMI)的实用电路技术 qtFK_EMC_EMI 【导读】本系列文章的第 1 部分至第 4 部分详细介绍了开关电源稳压器引起的传导发射和辐射发射,包括噪声产生机制、测量要求、频率范围、适用的测试限值、传播模式和寄生效应。在第 5 部分中,我将基于这一理论基础介绍抑制电磁干扰 (EMI) 的实用电路技术。 一般来说,电路原理图和印刷电路板 (PCB) 对于实现出色的 EMI 性能至关重要。第 3 部分重点强调通过谨慎的元器件选型和 PCB 布局尽量减小“功率回路”寄生电感的重要性。电源转换

学海无涯的专栏 1192

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java 的适配器模式-设计模式之一 ---23中设计模式链接

搜索博客:Java设计模式:23种设计模式全面解析(超级详细) 链接:https://www.baidu.com/link?url=e1QQ5H1_aO62Kc8XO1Y6NB5YatdhOdPhbYprcN71Hs8NaedUDMtNmiOCX3OSFrYu&wd=&eqid=9693bbca000b1c59000000035d07a3ca 为便于理解,参考下面这篇文章: ...

统木木的博客 302

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java开发中的23种设计模式详解

Java开发中的23种设计模式详解

gfuugff的博客 6万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【JAVA长虹键法】第 十二式 外观模式(23种设计模式)

23种设计模式之外观模式

4万+

Java23种设计模式详解

提供了一种方式来封装一组具有相关联的或相互依赖的对象的创建。一个抽象工厂定义了一个接口,用于创建相关或依赖对象的家族,而实际的具体工厂则负责生成具体的对象。下面是一个使用Java实现的抽象工厂模式的简单示例:假设我们有一个图形应用程序,需要绘制不同类型的形状(如圆形、矩形等)和颜色填充策略(如红色、蓝色等)。每种形状都可以有不同的颜色填充,这就构成了两个相关的对象家族。// 抽象产品接口:形状// 具体产品:圆形@Override// 具体产品:矩形@Override。

2301_76508397的博客 3791

23种设计模式之外观模式

23种设计模式之外观模式

weixin_51395608的博客 1510

23种设计模式——外观模式(Facade Pattern)详解

本文介绍了23种设计模式之——外观模式(Facade Pattern)的说明及使用

Meteors.的博客 1230

23种设计模式一外观模式

外观模式通过提供统一接口简化复杂系统交互,其核心价值体现在简化、解耦和封装。文章以电商订单系统为例,展示了库存管理、支付处理、物流配送等多个子系统的实现,并通过OrderProcessingFacade外观类将这些子系统操作封装为统一的下单接口。该模式使客户端无需了解子系统细节,只需调用外观类提供的高层方法即可完成复杂操作,符合迪米特法则,有效降低了系统耦合度。UML类图清晰呈现了客户端、外观类与各子系统间的协作关系,体现了外观模式在复杂业务场景中的实用价值。

J_liaty的博客 1580

Java二十三种设计模式-外观模式(9/23)

外观模式(Facade Pattern)是一种常用的结构型设计模式,其核心目的是为一个复杂的子系统提供一个简化的统一接口。通过外观模式,客户端可以访问一个复杂的类系统,而无需了解该系统内部的复杂性。外观模式提供了一种简化复杂系统访问的方法,使得客户端可以更容易地与复杂的子系统交互。通过本文的深入分析,希望读者能够对外观模式有更全面的理解,并在实际开发中做出合理的设计选择。Java二十三种设计模式-单例模式(1/23)Java二十三种设计模式-工厂方法模式(2/23)

小相探索IT世界 1809

瑞_23种设计模式_外观模式

本文章为瑞_系列专栏之《23种设计模式》的外观模式篇。外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。应用实例:JAVA 的三层开发模式

阿瑞——从事Java后端,喜欢研读源码、自研框架、分享经验 1675

详解设计模式:外观模式

外观模式(Facade Pattern),又称为门面模式,是 GoF 的 23 种设计模式中的一种结构型设计模式。 外观模式 是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使得子系统更容易使用。使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接通过外观类来调用内部子系统中方法,从而外观模式让客户和子系统之间避免了紧耦合。 本篇内容包括:关于外观模式、外观模式实现 Demo

栗筝i的博客 3695
上一篇: Java 23种设计模式之简单工厂模式详解
下一篇: Java 23种设计模式之抽象工厂模式详解
程xxx
博客等级 码龄14年 7粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值