首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
物联网/工业互联网
›
物联网
›
布局型模式-桥接模式
返回列表
发新帖
布局型模式-桥接模式
[复制链接]
发表于 2025-12-18 07:43:41
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
桥接模式(Bridge Pattern)是一种布局型筹划模式,旨在将抽象部门与它的实现部门分离,以便两者可以独立地变革。它通过提供一个抽象层将它们毗连起来,从而克制了类的爆炸式扩展,尤其在面对复杂对象时显得特别有用。
核心头脑
桥接模式的核心是组合优于继承。它使用组合的方式,将一个类的抽象部门和实现部门分离开,使得它们可以独立地扩展,而不是通过继承强耦合在一起。
布局
桥接模式的重要到场者有以下几个部门:
抽象类(Abstraction): 界说高层的抽象接口,维护一个指向实现部门(Implementor)的引用。
实现类接口(Implementor): 界说实现类的接口,通常是抽象方法。
详细实现类(ConcreteImplementor): 实现 Implementor 接口,界说详细实现。
扩展抽象类(RefinedAbstraction): 在抽象类的根本上举行扩展,通常会调用 Implementor 的方法。
案例
代码
示例:绘图工具
假设你想筹划一个可以绘制形状(圆形、正方形)的工具,同时必要支持多种颜色(赤色、蓝色)。
// 实现接口
interface Color {
void applyColor();
}
// 具体实现类
class RedColor implements Color {
@Override
public void applyColor() {
System.out.println("Applying red color.");
}
}
class BlueColor implements Color {
@Override
public void applyColor() {
System.out.println("Applying blue color.");
}
}
// 抽象类
abstract class Shape {
protected Color color; // 组合颜色
public Shape(Color color) {
this.color = color;
}
abstract void draw();
}
// 扩展抽象类
class Circle extends Shape {
public Circle(Color color) {
super(color);
}
@Override
void draw() {
System.out.print("Drawing Circle with ");
color.applyColor();
}
}
class Square extends Shape {
public Square(Color color) {
super(color);
}
@Override
void draw() {
System.out.print("Drawing Square with ");
color.applyColor();
}
}
// 使用桥接模式
public class BridgePatternDemo {
public static void main(String[] args) {
Shape redCircle = new Circle(new RedColor());
Shape blueSquare = new Square(new BlueColor());
redCircle.draw();
blueSquare.draw();
}
}
复制
代码
实用场景
必要在多个维度上扩展类时,比方形状和颜色。
不盼望类之间有紧耦合关系,想通过组合进步机动性。
克制继承体系膨胀的题目。
优缺点
优点
解耦:抽象和实现分离,便于独立变革。
扩展性强:可以独立扩展抽象层或实现层。
遵照开闭原则:新增
功能
时无需修改现有
代码
。
缺点
增长了体系的复杂性,尤其在简朴场景下,大概显得“过分筹划”。
回复
使用道具
举报
返回列表
浏览过的版块
人工智能
DevOps与敏捷开发
Oracle
分布式数据库
备份
前端开发
移动端开发
运维.售后
linux
数据仓库与分析
用户国营
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表