设计模式-结构型-桥接模式-Bridge

桥接模式可以减少类的创建

矩阵类

public class Matrix {private String fileName;public Matrix(String fileName) {this.fileName = fileName;}public String getFileName() {return fileName;}
}

图片抽象类

public abstract class Image {protected ImageImp imp;public void setImp(ImageImp imp) {this.imp = imp;}public abstract void parseFile(String fileName);
}

BMP类

public class BMP extends Image {@Overridepublic void parseFile(String fileName) {imp.doPaint(new Matrix(fileName));}
}

GIF类

public class GIF extends Image {@Overridepublic void parseFile(String fileName) {imp.doPaint(new Matrix(fileName));}
}

JPEG类

public class JPEG extends Image {@Overridepublic void parseFile(String fileName) {imp.doPaint(new Matrix(fileName));}
}

图片实现抽象类

public abstract class ImageImp {public abstract void doPaint(Matrix matrix);
}

Window实现类

public class WinImp extends ImageImp {@Overridepublic void doPaint(Matrix matrix) {System.out.println("调用Windows系统的算法绘制像素矩阵:"+matrix.getFileName());}
}

Linux实现类

public class LinuxImp extends ImageImp {@Overridepublic void doPaint(Matrix matrix) {System.out.println("调用Linux系统的算法绘制像素矩阵:"+matrix.getFileName());}
}

演示类

public class Demo {public static void main(String[] args) {Image image1 = new BMP();ImageImp imageImp1 = new WinImp();image1.setImp(imageImp1);image1.parseFile("demo.bmp");}
}

演示结果

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

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

相关文章

常见算法策略

前言 算法策略是指在解决问题或完成任务时所采用的方法、技巧或步骤的总称。 在设计算法时,通常会考虑多种策略,并选择最适合特定问题的策略来实现算法的设计和优化。 算法策略比较 动态规划 动态规划介绍入口

动手学深度学习16 Pytorch神经网络基础

动手学深度学习16 Pytorch神经网络基础 1. 模型构造2. 参数管理1. state_dict()2. normal_() zeros_()3. xavier初始化共享参数的好处 3. 自定义层4. 读写文件net.eval() 评估模式 QA 1. 模型构造 定义隐藏层–模型结构定义前向函数–模型结构的调用 import torch from torch…

Xilinx 千兆以太网TEMAC IP核 MDIO 配置及物理接口

基于AXI4-Lite接口可以访问MDIO(Management Data Input/Output)接口,而MDIO接口连接MAC外部的PHY芯片,用户可通过AXI4-Lite接口实现对PHY芯片的配置。 1 MDIO接口简介 开放系统互连模型OSI的最低两层分别是数据链路层和物理层,数据链路层的…

联丰策略股票炒股APP市场这些板块爆发!A股后市怎么走?

查查配5月10日,A股三大指数涨跌不一。 联丰策略拥有一支由知名互联网公司和国内证券金融机构的行业专家组成的一流运营团队。凭借他们在互联网产品开发和金融风险管理方面的丰富经验,我们的团队致力于为客户提供专业和个性化的证券交易服务。 截至收盘,沪指涨0.01%,报3154.55点…

leetcode-矩阵最长递增路径-102

题目要求 思路 1.通过双循环去把每一个结点作为起始点进行统计,将返回的路径长度存放在res中,取最大的res的长度。 2.递归中需要的几个值,x和y当前结点的坐标,pre用于存储上一个结点的元素值,因为要求是路径上的元素是…

FreeRtos内核源码分析(九)——协程

目录 一、协程简介 二、协程工作机制 2.1 协程控制块结构 2.2 协程管理方式 2.3 协程调度方式 2.4 协程通信机制 三、协程状态及状态切换 3.1 协程状态 3.2 状态切换 四、协程创建 五、协程调度分析 5.1 源码分析 5.2 逻辑图分析 六、协程通信 6.1 协程发送消息…

通过acl设置阻止数据包通过

实验拓扑和信息如图(配置信息参考上一章内容) acl设置代码 AR4 系统是视图下 acl 2000 rule 5 deny source 10.10.10.1 0 接口0视图下 数据接收时 traffic-filter inbound acl 2000 测试结果

javatest

day4 2. public class test {public static void main(String[] args) {Scanner sc new Scanner(System.in);System.out.println("**************");System.out.println("存期 年利率");System.out.println("一年 2.25");System.ou…

Chromium编译指南2024 Windows11篇-编译前的准备工作和Visual Studio安装(一)

前言 在这个数字化快速发展的时代,浏览器不仅是我们获取信息的窗口,更是开发者表达创意和技术实力的舞台。 Chromium是由Google于2008年发起的开源浏览器项目,致力于为用户提供更快、更安全、更稳定的网页浏览体验。 其作为开源浏览器项目…

实验八 Linux虚拟内存 实验9.1:统计系统缺页次数成功案例

运行环境: VMware17.5.1 build-23298084Ubuntu 16.04LTS ubuntu版本下载地址Linux-4.16.10 linux历史版本下载地址虚拟机配置:硬盘一般不少于40G就行 内核版本不同内核文件代码也有出入,版本差异性令c文件要修改,如若要在linux6.7…

指针(5)加油吧

指针(5) 拿冒泡排序来举例: 1 .qsort void qsort (void* base,//base指向待排序数组的首元素的指针size_t num,//base指向数组中元素的个数size_t size,//base指向的数组中的一个元素的大小,单位是字节int(*cmp)(const void*,co…

HR人才测评,表达能力与岗位胜任力素质测评

什么是表达能力? 表达能力指的就是在语言能力基础之上发展形成的一种语用能力,可以结合自己所掌握的语言来实现交际的目的,能正确且灵活的把语言材料组合成为语言并且表达出想要表达的内容。 在百度百科中有如此定义,表达能力…

人工智能能否解决科学问题:Wolfram的视角

引言 在当今AI技术飞速发展的背景下,它在科学研究领域的应用正逐渐深入。从AlphaFold 3的推出到日益复杂的计算模型,AI似乎在向科学家的角色靠拢。然而,美国计算机科学家Stephen Wolfram在一系列讲座和文章中提出了反思:AI真的能…

如何给扫描好的3d模型贴图?---模大狮模型网

在数字化设计领域,3D模型的贴图是提升模型逼真度和视觉效果的重要步骤之一。尤其是对于扫描好的3D模型,通过添加适当的贴图,不仅可以增强模型的细节和真实感,还可以为设计带来更加生动的视觉体验。本文将为您详细介绍如何给扫描好…

算法详解——回溯法

一、回溯法概述——问题背景 回溯法是一种解决约束满足问题的方法,特别适用于解决组合问题、搜索优化问题等。它通过逐步构建候选解决方案并且在这个解决方案不再可能满足约束或条件时进行剪枝和回溯。具体来说,回溯法可以应用于以下类型的问题&#xff…

基于yolov5+gradio目标检测演示系统设计

YOLOv5与Gradio:目标检测可视化展示的新篇章 随着人工智能技术的深入发展,目标检测已成为现代智能应用中的一项关键技术。YOLOv5,作为目标检测领域的杰出代表,凭借其出色的实时性和准确性,赢得了广泛的认可和应用。而…

AI视频教程下载:用ChatGPT自动化各种工作任务

这是一门实用的无代码课程,旨在通过使用ChatGPT高级数据分析和代码解释器提高生产力。 通过让ChatGPT代码解释器创建程序来自动化单调的任务,提高您的计算机生产力。 这门课程专为那些渴望快速使用小型实用程序的人设计,不需要编程知识。相…

Java医院绩效管理应用系统源码java+ maven+ avue 公立医院绩效考核管理系统源码 支持二开

Java医院绩效管理应用系统源码java maven avue 公立医院绩效考核管理系统源码 支持二开 医院绩效管理系统解决方案紧扣新医改形势下医院绩效管理的要求,以“工作量为基础的考核方案”为核心思想,结合患者满意度、服务质量、技术难度、工作效率、医德医风…

如何使用 WavLM音频合成模型

微软亚洲研究院与 Azure 语音组的研究员们提出了通用语音预训练模型 WavLM。通过 Denoising Masked Speech Modeling 框架(核心思想是通过预测被掩蔽(即遮蔽或删除)的语音部分来训练模型,同时还包括去噪的过程)&#x…

使用单片机在图形点阵LCD上绘制波形图

使用单片机在图形点阵LCD上绘制波形图 需求: 假如有一组浮点数据,是通过AD转换得到的,保存在数组MyArray[]中,采集点数为len,采集周期为T,现在想用单片机在LCD上绘制出这组数据对应的波形图,该…