苏宁易购网页布局设计搜索引擎优化岗位

bicheng/2026/1/20 1:16:02/文章来源:
苏宁易购网页布局设计,搜索引擎优化岗位,网络营销推广服务,免费建自己的网站赚钱文章目录 1 桥接模式#xff08;Bridge Pattern#xff09;1.1 介绍1.2 概述1.3 桥接模式的结构 2 案例一2.1 需求2.2 代码实现 3 案例二2.1 需求2.1 代码实现 #x1f64a; 前言#xff1a;本文章为瑞_系列专栏之《23种设计模式》的桥接模式篇。本文中的部分图和概念等资料… 文章目录 1 桥接模式Bridge Pattern1.1 介绍1.2 概述1.3 桥接模式的结构 2 案例一2.1 需求2.2 代码实现 3 案例二2.1 需求2.1 代码实现 前言本文章为瑞_系列专栏之《23种设计模式》的桥接模式篇。本文中的部分图和概念等资料来源于博主学习设计模式的相关网站《菜鸟教程 | 设计模式》和《黑马程序员Java设计模式详解》特此注明。本文中涉及到的软件设计模式的概念、背景、优点、分类、以及UML图的基本知识和设计模式的6大法则等知识建议阅读 《瑞_23种设计模式_概述》 本系列 - 设计模式 - 链接《瑞_23种设计模式_概述》 ⬇️本系列 - 创建型模式 - 链接   单例模式《瑞_23种设计模式_单例模式》   工厂模式《瑞_23种设计模式_工厂模式》   原型模式《瑞_23种设计模式_原型模式》 抽象工厂模式《瑞_23种设计模式_抽象工厂模式》  建造者模式《瑞_23种设计模式_建造者模式》 ⬇️本系列 - 结构型模式 - 链接   代理模式《瑞_23种设计模式_代理模式》  适配器模式《瑞_23种设计模式_适配器模式》  装饰者模式《瑞_23种设计模式_装饰者模式》   桥接模式《后续更新》   外观模式《后续更新》   组合模式《后续更新》   享元模式《后续更新》 ⬇️本系列 - 行为型模式 - 链接 模板方法模式《后续更新》   策略模式《后续更新》   命令模式《后续更新》  职责链模式《后续更新》   状态模式《后续更新》  观察者模式《后续更新》  中介者模式《后续更新》  迭代器模式《后续更新》  访问者模式《后续更新》  备忘录模式《后续更新》  解释器模式《后续更新》 1 桥接模式Bridge Pattern 桥接Bridge Pattern是用于把抽象化与实现化解耦使得二者可以独立变化。这种类型的设计模式属于结构型模式它是作为现有的类的一个包装它通过提供抽象化和实现化之间的桥接结构来实现二者的解耦。 瑞结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式前者采用继承机制来组织接口和类后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低满足“合成复用原则”所以对象结构型模式比类结构型模式具有更大的灵活性。 这种模式涉及到一个作为桥接的接口使得实体类的功能独立于接口实现类这两种类型的类可被结构化改变而互不影响。 桥接模式的目的是将抽象与实现分离使它们可以独立地变化该模式通过将一个对象的抽象部分与它的实现部分分离使它们可以独立地改变。它通过组合的方式而不是继承的方式将抽象和实现的部分连接起来。 1.1 介绍 意图将抽象部分与实现部分分离使它们都可以独立的变化。 主要解决在有多种可能会变化的情况下用继承会造成类爆炸问题扩展起来不灵活。 何时使用实现系统可能有多个角度分类每一种角度都可能变化。 如何解决把这种多角度分类分离出来让它们独立变化减少它们之间耦合。 关键代码抽象类依赖实现类。 应用实例   1️⃣ 猪八戒从天蓬元帅转世投胎到猪转世投胎的机制将尘世划分为两个等级即灵魂和肉体前者相当于抽象化后者相当于实现化。生灵通过功能的委派调用肉体对象的功能使得生灵可以动态地选择。   2️⃣ 墙上的开关可以看到的开关是抽象的不用管里面具体怎么实现的。 优点   1️⃣ 抽象和实现的分离。   2️⃣ 优秀的扩展能力。   3️⃣ 实现细节对客户透明。 缺点桥接模式的引入会增加系统的理解与设计难度由于聚合关联关系建立在抽象层要求开发者针对抽象进行设计与编程。 使用场景   1️⃣ 如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性避免在两个层次之间建立静态的继承联系通过桥接模式可以使它们在抽象层建立一个关联关系。   2️⃣ 对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统桥接模式尤为适用。   3️⃣ 一个类存在两个独立变化的维度且这两个维度都需要进行扩展。 注意事项对于两个独立变化的维度使用桥接模式再适合不过了。 1.2 概述 定义将抽象与实现分离使它们可以独立变化。它是用组合关系代替继承关系来实现从而降低了抽象和实现这两个可变维度的耦合度。 现在有一个需求需要创建不同的图形并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系类图如下未使用桥接模式 我们可以发现有很多的类假如我们再增加一个形状或再增加一种颜色就需要创建更多的类。 试想在一个有多种可能会变化的维度的系统中用继承方式会造成类爆炸扩展起来不灵活。每次在一个维度上新增一个具体实现都要增加多个子类。为了更加灵活的设计系统我们此时可以考虑使用桥接模式。 1.3 桥接模式的结构 桥接Bridge模式包含以下主要角色   1️⃣ 抽象化Abstraction角色 定义抽象类并包含一个对实现化对象的引用。   2️⃣ 扩展抽象化Refined Abstraction角色 是抽象化角色的子类实现父类中的业务方法并通过组合关系调用实现化角色中的业务方法。   3️⃣ 实现化Implementor角色 定义实现化角色的接口供扩展抽象化角色调用。   4️⃣ 具体实现化Concrete Implementor角色 给出实现化角色接口的具体实现。 2 案例一 【案例】视频播放器 2.1 需求 需要开发一个跨平台视频播放器可以在不同操作系统平台如Windows、Mac、Linux等上播放多种格式的视频文件常见的视频格式包括RMVB、AVI、WMV等。该播放器包含了两个维度适合使用桥接模式。 类图如下 2.2 代码实现 视频文件接口 /*** 视频文件(实现化角色)** author LiaoYuXing-Ray**/ public interface VideoFile {// 解码功能void decode(String fileName); }avi视频文件类 /*** avi视频文件具体的实现化角色** author LiaoYuXing-Ray**/ public class AviFile implements VideoFile {Overridepublic void decode(String fileName) {System.out.println(avi视频文件 fileName);} }rmvb视频文件类 /*** rmvb视频文件具体的实现化角色** author LiaoYuXing-Ray**/ public class RmvbFile implements VideoFile {Overridepublic void decode(String fileName) {System.out.println(rmvb视频文件 fileName);} }抽象的操作系统类抽象类 /*** 抽象的操作系统类(抽象化角色)** author LiaoYuXing-Ray**/ public abstract class OperatingSystem {// 声明videFile变量protected VideoFile videoFile;public OperatingSystem(VideoFile videoFile) {this.videoFile videoFile;}public abstract void play(String fileName); }windows操作系统类 /*** 扩展抽象化角色(windows操作系统)** author LiaoYuXing-Ray**/ public class Windows extends OperatingSystem {public Windows(VideoFile videoFile) {super(videoFile);}Overridepublic void play(String fileName) {videoFile.decode(fileName);} }Mac操作系统类 /*** Mac操作系统(扩展抽象化角色)** author LiaoYuXing-Ray**/ public class Mac extends OperatingSystem {public Mac(VideoFile videoFile) {super(videoFile);}public void play(String fileName) {videoFile.decode(fileName);} } 类 /*** 测试类** author LiaoYuXing-Ray**/ public class Client {public static void main(String[] args) {// 创建mac系统对象OperatingSystem system new Mac(new AviFile());// 使用操作系统播放视频文件system.play(《源代码》.avi);} }代码运行结果如下 avi视频文件 《源代码》.avi好处 桥接模式提高了系统的可扩充性在两个变化维度中任意扩展一个维度都不需要修改原有系统。 如如果现在还有一种视频文件类型wmv我们只需要再定义一个类实现VideoFile接口即可其他类不需要发生变化。 实现细节对客户透明 使用场景 当一个类存在两个独立变化的维度且这两个维度都需要进行扩展时。当一个系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。避免在两个层次之间建立静态的继承联系通过桥接模式可以使它们在抽象层建立一个关联关系。 3 案例二 本案例为菜鸟教程中的案例 2.1 需求 使用相同的抽象类方法但是不同的桥接实现类来画出不同颜色的圆。 我们有一个作为桥接实现的 DrawAPI 接口和实现了 DrawAPI 接口的实体类 RedCircle、GreenCircle。Shape 是一个抽象类将使用 DrawAPI 的对象。BridgePatternDemo 类使用 Shape 类来画出不同颜色的圆。 2.1 代码实现 步骤 1   创建桥接实现接口。 DrawAPI.java public interface DrawAPI {public void drawCircle(int radius, int x, int y); }步骤 2   创建实现了 DrawAPI 接口的实体桥接实现类。 RedCircle.java public class RedCircle implements DrawAPI {Overridepublic void drawCircle(int radius, int x, int y) {System.out.println(Drawing Circle[ color: red, radius: radius , x: x, y ]);} }GreenCircle.java public class GreenCircle implements DrawAPI {Overridepublic void drawCircle(int radius, int x, int y) {System.out.println(Drawing Circle[ color: green, radius: radius , x: x, y ]);} }步骤 3   使用 DrawAPI 接口创建抽象类 Shape。 Shape.java public abstract class Shape {protected DrawAPI drawAPI;protected Shape(DrawAPI drawAPI){this.drawAPI drawAPI;}public abstract void draw(); }步骤 4   创建实现了 Shape 抽象类的实体类。 Circle.java public class Circle extends Shape {private int x, y, radius;public Circle(int x, int y, int radius, DrawAPI drawAPI) {super(drawAPI);this.x x; this.y y; this.radius radius;}public void draw() {drawAPI.drawCircle(radius,x,y);} }步骤 5   使用 Shape 和 DrawAPI 类画出不同颜色的圆。 BridgePatternDemo.java public class BridgePatternDemo {public static void main(String[] args) {Shape redCircle new Circle(100,100, 10, new RedCircle());Shape greenCircle new Circle(100,100, 10, new GreenCircle());redCircle.draw();greenCircle.draw();} }步骤 6   执行程序输出结果 Drawing Circle[ color: red, radius: 10, x: 100, 100]Drawing Circle[ color: green, radius: 10, x: 100, 100]本文是博主的粗浅理解可能存在一些错误或不完善之处如有遗漏或错误欢迎各位补充谢谢 如果觉得这篇文章对您有所帮助的话请动动小手点波关注你的点赞收藏⭐️转发评论都是对博主最好的支持~

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

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

相关文章

做网站盐城哈尔滨高端模板建站

文章目录 前言一、qnx 上的窗口系统——screen二、screen + egl + opengles 最简实例1.使用 addvariant 命令创建工程目录2. 添加源码文件3. common.mk 文件4. 编译与执行总结参考资料前言 本文主要介绍如何在QNX 系统上使用egl和opengles 控制GPU渲染一个三角形并显示到屏幕上…

网站建设问题及对策新手做网站应该注意什么

本文首先对该系统进行了详细地描述,然后对该系统进行了详细的描述。管理人员增加了系统首页、个人中心、用户管理、景点分类管理、景点简介管理、旅游路线管理、文章分类管理、公告文章管理、系统管理理等功能。这套黄河风景线旅游网站是根据当前的现实需要&#xf…

学术会议网站建设百色建设厅网站

实验配置 eNSP 什么是二层交换 二层交换是指在同一个ip网段内,数据通过二层交换机进行转发。 什么是mac地址 mac地址也叫做硬件地址,是以太网协议的链路层地址。简单的来说,mac地址就是我们硬件的身份证,独一无二。它是由48个bi…

做书籍封皮的网站国际网站平台

文章目录 一、模型的处理二、TDR仿真2.1 修改求解模式2.2增加求解设置 三、查看仿真结果3.1 查看TDR结果3.2 查看S参数结果 四、结果分析4.1上升时间tr对仿真的影响 附:工程链接 在上一讲中,主要是通过观察S参数确定via的优化是否达到目标。但S参数只能看…

电视盒子做网站服务器深圳社保网上服务平台

一、HMM中的第三个基本问题 参数估计问题:给定一个观察序列OO1O2…OT,如何调节模型μ(A,B,π)的参数,使得P(O|μ)最大化: argmaxμP(Otraining|μ)arg \max_{\mu} P(O_{training}|\mu)模型的参数是指构成μ的πi,aij,bj(k)。本文…

wordpress 网站费用怎么做淘宝卷网站

随着技术的发展,人工智能的时代离我们越来越近,在人工智能的影响下许多传统行业开始向智能化方向转型,其中最明显的就是电话营销方面的工作。为了减轻人工销售负担出现了一个电销机器人系统,每天能拨打3000通电话,最高…

织梦可以做论坛网站吗自己制作的网站

freemodbus的官方介绍和下载入口,官方仓库链接:https://github.com/cwalter-at/freemodbus modbus自己实现的话往往是有选择的支持几条指令,像断帧和异常处理可能是完全不处理的,用freemodbus实现的话要简单很多,可移植…

网站运营维护合同商务网站建设与维护 ppt

什么是SLAM? SLAM,即同时定位与地图构建技术,SLAM可以让机器人、无人机和其他自动化系统能够在未知环境中同时进行自我定位和环境映射。 为什么是NeRF-Based SLAM? 传统CG将输入图像重新投影再融合到新的视图摄像机中&#xff0c…

网站服务器如何搭建基于构件的软件开发流程

特点 1.只有append操作2.支持子切片3.内存共享问题 1.只有append操作 不支持随机增删 2.支持子切片 数组和切片都可以通过[start:end] 的形式 来获取子切片: 1.arr[start:end],获得[start,end)之间的元素。 2.arr[:end],获得[0,end)之间的元素。 3.arr[start:],获得[start,l…

平面设计手绘网站中国字幕组回怼韩国媒体

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件🔥,更新AIGC的最新动态,生成相应的魔法简报,节省阅读时间👻 🔥资讯预览 YaRN方法:无需微调,高效扩展语言模型上下文窗口 蚂蚁…

河南和城乡建设厅网站内装设计

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.使用__slots__2. property3.多重继承 4.定制类5.枚举类6.错误处理7.调试8. 文档测试9.单元测试10. 文件读写11. StringIO和BytesIO12. 操作文件和目录13.序列化14…

有好看图片的软件网站模板下载百度搜索提交入口

2024.4.8 题目来源我的题解方法一 去重排序滑动窗口 题目来源 力扣每日一题;题序:2009 我的题解 方法一 去重排序滑动窗口 参考官方题解。 记数组 nums的长度为 n。经过若干次操作后,若数组变为连续的,那么数组的长度不会改变&…

网站做多久能盈利WordPress单栏二次元主题

希望和各位大佬一起学习,如果文章内容有错请多多指正,谢谢! 个人博客链接:CH4SER的个人BLOG – Welcome To Ch4sers Blog DC-1 靶机下载地址:DC: 1 ~ VulnHub 0x01 信息收集 Nmap扫描目标主机,发现开…

做编程的 网站有哪些凡客软件

该课程全面解析数据产品和人工智能产品的开发与设计。学员将学习产品规划、数据分析以及AI技术应用,通过案例实践掌握产品开发流程,致力于帮助他们成功进入数据和人工智能产品领域。 课程大小:9.8G 课程下载:https://download.cs…

非凡网站建设 新三板网页模版设计

一、使用Executors创建线程池之前创建线程的时候都是用的Executors的newFixedThreadPool(),newSingleThreadExecutor(),newCachedThreadPool()这三个方法。当然Executors也是用不同的参数去new ThreadPoolExecutor1. newFixedThreadPool()创建线程数固定大小的线程池。 由于使用…

专做网站做男女之间的事情的网站

VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用,例如可以用来核对数据,多个表格之间快速导入数据等函数功能。功能是按列查找,最终返回该列所需查询列序所对应…

企业企业网站建公司营销网站建设

文章目录 5.6 有哪些池化方法 5.7 1x1卷积作用 5.8 卷积层和池化层有什么区别 5.9 卷积核是否一定越大越好 5.10 每层卷积是否只能用一种尺寸的卷积核 5.11 怎样才能减少卷积层参数量 5.12 在进行卷积操作时,必须同时考虑通道和区域吗 5.13 采用宽卷积的好处有什么 …

奎屯市住房和城乡建设局网站浠水网站建设

1、进入sql环境 》》》mysql -u root -p 》》》输入密码 2、sql语言的分类 3、注意事项: 4、基础操作: (1)查询所有数据库: show databases; 运行结果: (2)创建一个新的数据库&…

网站首页空白 wordpress网店网站怎么做的

题目 输入URL按下回车后,中间发生了什么 这个问题其实是计算机网络里面很经典的一个问题,不能去死机硬背,很考察对网络架构和通信原理的理解,也是各个互联网大厂喜欢考察的面试题。 一些图片参考了小林的计算机网络面经 从输入…

找装修公司网站搬家网站建设案例说明

SFD Sparse Fuse Dense: Towards High Quality 3D Detection with Depth Completion 论文网址:SFD 论文代码:SFD 论文简读 本文主要关注如何利用深度完成技术提高三维目标检测的质量。论文提出了一种名为 SFD(Sparse Fuse Dense&#xff0…