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

news/2024/6/19 15:24:37

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

矩阵类

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);
}

Windows实现类

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");}
}

演示结果


https://dhexx.cn/news/show-5353030.html

相关文章

Apple即将推出的功能如何为残障人士带来更好体验?

Apple 宣布将推出全新辅助功能 前言 就在5月16日,Apple 宣布将于今年晚些时候推出全新的辅助功能,关闭表示,目前推出的主要技术有眼动追踪技术、音乐触觉反馈、人声快捷键等一系列全新功能,这将为为苹果用户带来更多的便利。 眼球…

iOS block处理button的点击事件

一. 代码 .h文件内容 #import <UIKit/UIKit.h> typedef void (^ButtonBlock)(UIButton *);interface BlockButton : UIButton- (void)addTapBlock:(ButtonBlock)block;end.m文件内容 #import “BlockButton.h” interface BlockButton()property(nonatomic,copy) But…

C++的数据结构(五):树和存储结构及示例

在计算机科学中&#xff0c;树是一种抽象数据类型&#xff08;ADT&#xff09;或是实现这种抽象数据类型的数据结构&#xff0c;用来模拟具有树状结构性质的数据集合。这种数据结构以一系列连接的节点来形成树形结构。在C中&#xff0c;树的概念和存储结构是实现各种复杂算法和…

D60SB60-ASEMI电源设备首选整流桥D60SB60

编辑&#xff1a;ll D60SB60-ASEMI电源设备首选整流桥D60SB60 型号&#xff1a;D60SB60 品牌&#xff1a;ASEMI 封装&#xff1a;DSB-4 最大重复峰值反向电压&#xff1a;600V 最大正向平均整流电流(Vdss)&#xff1a;60A 功率(Pd)&#xff1a;大功率 芯片个数&#xf…

python创建新环境并安装pytorch

python创建新环境并安装pytorch 一、创建新环境1、准备工作2、创建虚拟环境并命名3、激活虚拟环境 二、安装pytorch1、pytorch官网2、选择与你的系统相对应的版本3、安装成功 一、创建新环境 1、准备工作 本次创建的环境是在anaconda环境下&#xff0c;否则需要在纯净环境下创…

体积渲染技术在AI去衣应用中的创新探索

引言&#xff1a; 随着计算机视觉和人工智能技术的飞速发展&#xff0c;AI去衣技术逐渐走进公众视野。这一技术以其独特的应用前景和技术挑战引起了广泛的关注。在实现衣物去除的同时保持图像质量的关键技术之一&#xff0c;便是体积渲染技术。本文将深入探讨体积渲染技术在AI去…

如何在mac电脑安装 Android SDK

1、在 Mac 电脑上安装 Android SDK 的步骤如下: 前往 Android 开发者网站下载 Android SDK 打开 Android 开发者网站 (https://developer.android.com/studio) 打开下载好的 Android SDK 安装包 2、解压 Android SDK 安装包 打开下载好的 Android SDK 安装包 将 android-…

centOS忘记密码的处理办法

1、开机后在出现内核选项时&#xff0c;按 e&#xff1b; 2、在Linux 开头的这行&#xff0c;输入 rd.break 如下图&#xff1b; 3、然后&#xff0c;执行&#xff1a;CtrlX&#xff1b; 4、进入之后是 switch_root:/#输入 mount -o rw,remount /sysroot 以读写方式重新挂载 /s…

visual studio snippet常用注释片段

Visual Studio 2022 添加自定义代码片段_vs2022 代码片段-CSDN博客 dclass.snippet: <?xml version"1.0" encoding"utf-8"?> <CodeSnippets xmlns"http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> …

OpenAI GPT-4o:开启人工智能交互新纪元

引言 在人工智能领域&#xff0c;OpenAI一直是创新的代名词。2024年5月14日&#xff0c;OpenAI再次以GPT-4o模型震撼了科技界&#xff0c;这款全新的旗舰生成模型不仅免费向公众开放&#xff0c;更以其革命性的多模态交互能力&#xff0c;引领我们进入了一个全新的科幻时代。 …