当前位置: 首页 > news >正文

Java 桥接模式(Bridge Pattern)是设计模式中的一种结构型设计模式,桥接模式的核心思想是将抽象与实现解耦

桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式的核心思想是将抽象与实现解耦,使得它们可以独立扩展。

在桥接模式中,通常包含以下四个角色:

1、实现化(Implementor)角色:定义实现化角色的接口,这个接口不一定要与抽象化角色的接口完全一致,但一般来说,实现化角色的接口应当与抽象化角色的接口相类似。

// 实现化角色(Implementor)  
public interface Color {  void fill();  
} 

2、具体实现化(ConcreteImplementor)角色:实现角色接口,实现具体的业务逻辑。

// 具体实现化角色(ConcreteImplementor)  
public class Red implements Color {  @Override  public void fill() {  System.out.println("用红色填充");  }  
}  
public class Blue implements Color {  @Override  public void fill() {  System.out.println("用蓝色填充");  }  
}  

3、抽象化(Abstraction)角色:定义抽象类的接口,并保存一个对应实现化对象的引用。

public abstract class Shape {  protected Color color;  public Shape(Color color) {  this.color = color;  }  public abstract void draw();  public void setColor(Color color) {  this.color = color;  }  public Color getColor() {  return color;  }  
}  

4、扩展抽象化(RefinedAbstraction)角色:实现抽象化角色定义的接口,并扩展抽象化角色。扩展抽象化角色需要更新对实现化对象的引用,以间接调用实现化角色的方法。

public class Circle extends Shape {  public Circle(Color color) {  super(color);  }  @Override  public void draw() {  System.out.println("绘制圆形...");  color.fill();  }  
}

具体代码引用

	public static void main(String[] args) {  Shape redCircle = new Circle(new Red());  redCircle.draw();//用红色Shape blueCircle = new Circle(new Blue());  blueCircle.draw();//用蓝色}  

在这里插入图片描述

http://www.lryc.cn/news/378139.html

相关文章:

  • 入门Ansible常用模块
  • 全能AI客户端:ChatGPT Web Midjourney Proxy,AI绘画+GPT4o对话
  • Java基础 - 练习(四)打印九九乘法表
  • 软件测试——稳定性测试:adb Monkey
  • 前端vue实战项目结构、常用编辑器vs code 配置
  • Linux系统性能优化实战经验
  • 2024广东省职业技能大赛云计算赛项实战——Ansible部署Zabbix
  • Linux—— ansible循环
  • RabbitMQ 开发指南
  • ElasticSearch学习笔记(二)文档操作、RestHighLevelClient的使用
  • python离线安装第三方库、及其依赖库(单个安装,非批量移植)
  • 昨天发的 npm 包,却因为 registry 同步问题无法安装使用
  • Redis 数据恢复及持久化策略分析
  • vscode 快捷键侧边栏
  • FreeRTOS:1、任务通知vTaskNotifyGiveFromISR保证实时性
  • 监督学习:从数据中学习预测模型的艺术与科学
  • 深入理解Java虚拟机(JVM)中的垃圾回收器
  • 视频集市新增支持多格式流媒体拉流预览
  • 定时器-前端使用定时器3s轮询状态接口,2min为接口超时
  • python实践笔记(二): 类和对象
  • 指定GPU跑模型
  • Windows桌面运维----第五天
  • bash和dash的区别(及示例)
  • Java基础入门day65
  • 解密制度的规定和解密工作的具体流程
  • 实际中常用的网络相关命令
  • 机器学习补充
  • 机器学习——RNN、LSTM
  • Java项目学习(员工管理)
  • 视觉SLAM14精讲——相机与图像3.3