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

设计模式-桥接模式

桥接模式(Bridge)是结构型模式

它将抽象部分实现部分解耦,使二者可以独立变化,通过组合关系代替继承关系来连接不同的维度。

颜色类

public interface Color {String applyColor();
}

颜色实现类

class Blue implements Color {@Overridepublic String applyColor() {return "蓝色";}
}
class Red implements Color {@Overridepublic String applyColor() {return "红色";}
}

形状类抽象

abstract class Shape {protected Color color;  // 组合颜色实现public Shape(Color color) {this.color = color;}public abstract void draw();
}

形状实现类

class Circle extends Shape {public Circle(Color color) {super(color);}@Overridepublic void draw() {System.out.println("绘制" + color.applyColor() + "的圆形");}
}
class Square extends Shape {public Square(Color color) {super(color);}@Overridepublic void draw() {System.out.println("绘制" + color.applyColor() + "的正方形");}
}

主函数

    public static void main(String[] args) {// 红色圆形Shape redCircle = new Circle(new Red());redCircle.draw();  // 输出:绘制红色的圆形// 蓝色正方形Shape blueSquare = new Square(new Blue());blueSquare.draw(); // 输出:绘制蓝色的正方形}

创建不同形状颜色的图形时,需要组合类,不过对于类的增长爆炸并没有完全规避掉,只是减少了部分累的冗余

http://www.xdnf.cn/news/30295.html

相关文章:

  • 14.解码器的Mask
  • End-to-End从混沌到秩序:基于LLM的Pipeline将非结构化数据转化为知识图谱
  • 从GET到POST:HTTP请求的攻防实战与CTF挑战解析
  • EF Core中动态加载关联的导航属性
  • 直线轴承的正确安装方式是什么?
  • LeetCode 热题 100_乘积最大子数组(88_152_中等_C++)(动态规划)
  • 虚拟现实(VR)技术在教育领域的创新应用
  • QML中的3D功能--入门开发
  • Chat2DB创始人姬朋飞:AI在 text2sql应用领域的实践
  • Java从入门到“放弃”(精通)之旅——数组的定义与使用⑥
  • 进程程序替换
  • 【橘子大模型】初探rag知识库的构建
  • Linux基础IO(八)之硬链接
  • 完整游戏排行榜系统实现
  • Redux Promise 中间件
  • C++ 数组 array ™实现动画效果全解析⚡YQW · Studio ⚡
  • Http基础
  • QML中的3D功能--自定义着色器开发
  • 硬件操作指南——ATK-MD0430 V20
  • 什么是超类实体和派生属性
  • JavaScript 变量语法扩展
  • C 语言联合与枚举:自定义类型的核心解析
  • Scade 语言词法介绍
  • 游戏引擎学习第235天:在 Windows 上初始化 OpenGL
  • 4N60-ASEMI开关电源与适配器专用4N60
  • 6.7 ChatGPT自动生成定时任务脚本:Python与Cron双方案实战指南
  • android测试依赖
  • Python番外——常用的包功能讲解和分类组合
  • GD32H7单片机使用segger_rtt,rtt-viewer看不到输出的问题,怎样解决?
  • 使用docker在manjaro linux系统上运行windows和ubuntu