淄博网站建设培训班中国建设通网站

web/2025/10/5 4:06:54/文章来源:
淄博网站建设培训班,中国建设通网站,什么是手机网站建设,宁波网站建设建站系统目录 1.概述2.结构3.实现3.1.子系统类3.2.外观类3.3.测试 4.优缺点5.使用场景6.源码解析 1.概述 #xff08;1#xff09;有些人可能炒过股票#xff0c;但其实大部分人都不太懂#xff0c;这种没有足够了解证券知识的情况下做股票是很容易亏钱的#xff0c;刚开始炒股肯… 目录 1.概述2.结构3.实现3.1.子系统类3.2.外观类3.3.测试 4.优缺点5.使用场景6.源码解析 1.概述 1有些人可能炒过股票但其实大部分人都不太懂这种没有足够了解证券知识的情况下做股票是很容易亏钱的刚开始炒股肯定都会想如果有个懂行的帮帮手就好其实基金就是个好帮手支付宝里就有许多的基金它将投资者分散的资金集中起来交由专业的经理人进行管理投资于股票、债券、外汇等领域而基金投资的收益归持有者所有管理机构收取一定比例的托管管理费用。 2外观模式 (Facade Pattern) 是一种结构型设计模式又称为门面模式它提供了一个统一的接口用于简化复杂系统或子系统的接口并将其封装成一个更高级别的接口。外观模式隐藏了系统的复杂性通过定义一个高层接口使得客户端与系统的交互更加简单和方便。此外外观模式是迪米特法则的典型应用。 2.结构 外观模式包含以下主要角色 外观 (Facade) 角色外观对象是客户端与子系统之间的中间层它封装了一组相关的子系统接口对客户端提供一个更简单、更高层次的接口。子系统 (Subsystem) 角色子系统是完成真正业务逻辑的组件它包含了一系列相互关联的类和方法。每个子系统都有自己的功能和职责但客户端可能不需要直接与子系统进行交互。 3.实现 【例】智能家电控制小明的爷爷已经 60 岁了一个人在家生活每次都需要打开灯、打开电视、打开空调睡觉时关闭灯、关闭电视、关闭空调操作起来都比较麻烦。所以小明给爷爷买了智能音箱可以通过语音直接控制这些智能家电的开启和关闭。类图如下 具体实现代码如下 3.1.子系统类 Light.java public class Light {public void on(){System.out.println(打开电灯......);}public void off(){System.out.println(关闭电灯......);} }TV.java public class TV {public void on(){System.out.println(打开电视机......);}public void off(){System.out.println(关闭电视机......);} }AirCondition.java public class AirCondition {public void on(){System.out.println(打开空调......);}public void off(){System.out.println(关闭空调......);} }3.2.外观类 SmartAppliancesFacade.java //外观类用户主要和该类对象进行交互 public class SmartAppliancesFacade {//聚合电灯对象、电视机对象、空调对象private Light light;private TV tv;private AirCondition airCondition;public SmartAppliancesFacade() {light new Light();tv new TV();airCondition new AirCondition();}//通过语言控制public void say(String message) {if (message.contains(打开)) {on();} else if (message.contains(关闭)) {off();} else {System.out.println(我还听不懂你说的);}}//一件打开功能public void on() {light.on();tv.on();airCondition.on();}//一件关闭功能public void off() {light.off();;tv.off();airCondition.off();} }3.3.测试 Client.java public class Client {public static void main(String[] args) {//创建智能音箱对象SmartAppliancesFacade facade new SmartAppliancesFacade();//控制家电facade.on();System.out.println();//关闭家电facade.off();} }输出结果如下 打开电灯...... 打开电视机...... 打开空调......关闭电灯...... 关闭电视机...... 关闭空调......4.优缺点 1外观模式有以下几个优点 简化客户端的调用通过外观对象提供的简单接口客户端可以更方便地与系统进行交互不需要了解系统的复杂性和内部结构。将客户端与子系统解耦外观模式将子系统封装起来客户端只需要与外观对象进行交互而不需要与各个子系统直接交互降低了客户端与子系统之间的耦合度。提高代码的可维护性通过将复杂的系统逻辑封装在外观对象中提升了代码的可读性和可维护性。修改系统时只需调整外观对象的接口而不需要修改客户端代码。提供统一的接口外观对象为系统的各个子系统定义了一个统一的接口使得系统更易于理解和使用。 2外观模式也有一些缺点 过度增加了一个新的抽象层外观模式引入了一个新的外观对象可能会导致系统中类的数量增加从而增加了系统的复杂性。不符合开闭原则当系统的功能发生变化时可能需要修改外观对象的接口这可能会影响到客户端代码。不能完全隐藏子系统的复杂性外观模式可以隐藏一部分子系统的复杂性但如果客户端需要直接访问子系统的一些细节就无法避免与子系统发生直接交互。 5.使用场景 1外观模式适用于以下情况 当需要简化复杂系统或子系统的接口时可以使用外观模式。例如一个系统包含多个子系统每个子系统有自己的接口但客户端可能不需要直接调用所有子系统的接口此时可以使用外观模式将这些子系统接口封装成一个更高层级的接口。当需要将系统与客户端分离并提高系统可维护性时可以使用外观模式。通过将系统的复杂性封装到外观对象中可以减少客户端代码与子系统之间的耦合并提高代码的可读性和可维护性。当需要对现有系统进行重构时可以使用外观模式。通过增加外观对象可以将系统的接口分层并提高代码的结构性从而使系统更加易维护。 2总之外观模式适用于需要简化系统接口、分离客户端与子系统之间的耦合度、提高代码可维护性以及改善系统的可用性和可理解性的情况。它是一个常用的结构型设计模式在实际开发中有着广泛的应用。 6.源码解析 1使用 Tomcat 作为 web 容器时接收浏览器发送过来的请求Tomcat 会将请求信息封装成 ServletRequest 对象如下图 ① 处对象。但是仔细想想 ServletRequest 是一个接口它还有一个子接口 HttpServletRequest而我们知道该 request 对象肯定是一个 HttpServletRequest 对象的子实现类对象到底是哪个类的对象呢可以通过输出 request 对象我们就会发现是一个名为 RequestFacade 的类的对象。 2RequestFacade 类就使用了外观模式。其结构图如下所示 3为什么在此处使用外观模式呢 定义 RequestFacade 类分别实现 ServletRequest 同时定义私有成员变量 Request 并且方法的实现调用 Request 的实现。然后将 RequestFacade上转为 ServletRequest 传给 servlet 的 service 方法这样即使在 servlet 中被下转为 RequestFacade 也不能访问私有成员变量对象中的方法。既用了 Request 又能防止其中方法被不合理的访问。

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

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

相关文章

seo网站快速ps网站页面设计教程

文章目录 RocketMQ可视化工具1.github上下载2.修改参数3.运行4.打包5.出错6.解决7.重试8.再解决9.很奇怪运行没错,但是测试错啦10.不想深究,直接跳过测试11.展示成功 RocketMQ可视化工具 1.github上下载 下载地址 https://github.com/apache/rocketmq-…

各大搜索引擎网站登录入口学校网站建设有限公司

import React, { useState } from react;// 定义一个简单的函数式组件 function Counter() {// 使用 useState hook 来创建一个状态变量 count,并提供修改该状态的函数 setCountconst [count, setCount] useState(0);// 在点击按钮时增加计数器的值const increment…

乡镇可以做门户网站外贸推广网站哪家

Java提供了不同的接口,使您可以修改TestNG行为。 这些接口在Selenium WebDriver中进一步称为TestNG侦听器。 TestNG Listeners还允许您根据项目要求自定义测试日志或报告。 Selenium WebDriver中的TestNG侦听器是侦听某些事件并跟踪测试执行情况的模块,…

网站开发技术一般需要什么语言小说排行榜2020前十名

题目传送门:洛谷P3835。 题意简述: 题面说的很清楚了。 题解: 考虑建立一棵每个节点都表示一个版本的树。 以初始版本 \(0\) 为根。对于第 \(i\) 个操作,从 \(v_i\) 向 \(i\) 连一条边,而边权则是 \(opt_i\) 和 \(x_i\…

大型建站公司建设中网站如何上传图片

2019独角兽企业重金招聘Python工程师标准>>> 微服务架构技能 博客分类: 架构 (StuQ 微服务技能图谱) 2课程简介 本课程分为基础篇和高级篇两部分,旨在通过完整的案例,呈现微服务的开发、测试、构建、部署、…

网站建设开题报告设计扬州建设工程交易网

写在前面 好久没有写博客了, 中间忙了一堆杂七杂八的事情...工作, 情感, 未来, 人生... 下面是正文 一直要写一个视频播放器, 好练练手. 这个app, 从年前写到现在, 终于算弄出了样子, 0.0版本. (不得不说, googleVPN值得拥有, android developer网站, android sdk samples, sta…

石材做网站细节云南网上办事大厅官网

目录 含义 七种事务传播机制 1.REQUIRED(默认) 2.REQUIRES_NEW 3.SUPPORTS 4.NOT_SUPPORTED 5.MANDATORY 6.NEVER 7.NESTED 含义 Spring事务的传播机制是指在多个事务方法相互调用时,如何处理这些事务的传播行为。对应七种事务传播行为…

建一个公司网站多少钱网站建设+人员+年终总结

项目场景: 在使用Stable diffusion webui时,使用扩展列表出现错误 问题描述 点击loadfrom后,出现加载扩展列表报错 原因分析: 下载的扩展的时候,都是github 的url,需要科学上网,如果不能科学…

蒙古文网站建设西红柿怎么做网站

损失函数和目标函数定义 损失函数是用于衡量模型在训练过程中预测结果与实际结果之间的差异的函数。它通过计算模型的预测值与实际值之间的距离或差异来 quantitatively 表示模型的性能好坏。损失函数通常被用作优化算法(如梯度下降)的目标函数,通过最小化损失函数来调整模…

公司网站建设怎么wordpress 短代码 if is single

一、概述 一个JVM实例只存在一个堆内存,堆内存的大小是可以手动调节的。类加载器读取了类文件后,需要把类、方法、常变量放到堆内存中,保存所有引用类型的真实信息,以方便执行器执行,堆内存分为三个部分,即…

网站ftp用户名和密码wordpress主题文章页

LLM 是利用深度学习和大数据训练的人工智能系统,专门设计来理解、生成和回应自然语言。这些模型通过分析大量的文本数据来学习语言的结构和用法,从而能够执行各种语言相关任务。以 GPT 系列为代表,LLM 以其在自然语言处理领域的卓越表现&…

山西龙采网站建设合同编程培训加盟

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

wordpress适合电影网站的模板沈阳企业建站系统模板

HTRANS、HSIZE和HBURST共同决定下一次数据传输的地址。 HTRANS[1:0]定义传输类型 HTRANS[1:0]主机传输状态描述00IDLE空闲表示没有进行数据传输,默认状态。主设备虽然可能已经占用了总线,但是还没有开始传输数据。从设备需要返回OKAY响应01BUSY忙主设备…

网站建设费用属于业务宣传费吗网络系统集成

1 引入对JDBC的理解-1 一般来说,Java应用程序访问数据库的过程是: 装载数据库驱动程序;通过jdbc建立数据库连接;访问数据库,执行sql语句;断开数据库连接。 Public void FindAllUsers(){//1、装载sqlserve…

做网站的国标有哪些网站开发实施方案

大概所有的程序员应该都接触过批量插入的场景,我也相信任何的程序员都能写出可正常运行的批量插入的代码。但怎样实现一个高效、快速插入的批量插入功能呢?由于每个人的工作履历,工作年限的不同,在实现这样的一个需求时&#xff0…

怎么快速建网站百度网盘资源搜索引擎入口

1.Dispersion Curve Extraction and Source Localization for Single Hydrophone by Combining Image Skeleton Extraction with Advanced Time-Frequency Analysis(图像骨架提取与先进时频分析相结合的单水听器色散曲线提取和源定位) 摘要:时频分析(TF…

免费网站建设itcask珠海模板建站平台

【Matlab】基于卷积神经网络的时间序列预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码6.完整代码7.运行结果1.模型原理 基于卷积神经网络(Convolutional Neural Network,CNN)的时间序列预测是一种用于处理时间序列数据的深度学习方法。…

开平网站制作广告公司前景怎么样

本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm5176.22758685.J_6770933040.1.6f103da1tESyzu 目录 一、学习知识点概要 二、学习内容 I.变量、运算符与数据类…

企业做网站有用么深圳网站设计灵点网络公司不错

Java是用于软件开发的最流行的编程语言之一。 无论您的最终目标或技能水平如何,学习和掌握Java都将为您作为开发人员打开大门。 今天,我们将讨论一些原因,我们认为您应该开始学习Java,然后提供有关入门的深入路线图。 为什么要学…

胶州市城乡建设局网站截图苏州外贸网站制作

msvcp120.dll 是 Windows 操作系统中的一个动态链接库文件,对于许多程序和游戏的运行起着至关重要的作用。然而,有时候我们可能会遇到 msvcp120.dll 丢失的情况,导致电脑出现各种问题。本文将详细介绍 msvcp120.dll 丢失的四种解决方法&#…