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

学校后勤网站建设方案郑州网站建设廴汉狮网络

学校后勤网站建设方案,郑州网站建设廴汉狮网络,wordpress编辑器定义,个人网站注册平台目录 一、 啥是桥接模式?二、 为什么要用桥接模式?三、 桥接模式的实现方式四、 桥接模式的优缺点五、 桥接模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支…

在这里插入图片描述

目录

    • 一、 啥是桥接模式?
    • 二、 为什么要用桥接模式?
    • 三、 桥接模式的实现方式
    • 四、 桥接模式的优缺点
    • 五、 桥接模式的应用场景
    • 六、 总结

🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢🤗!
🌟了解装饰器模式请看: (八)趣学设计模式 之 装饰器模式!

这篇文章带你详细认识一下设计模式中的桥接模式

一、 啥是桥接模式?

想象一下,你想要画不同形状的图形 🎨 (比如:圆形、矩形),并且你想用不同的颜色来填充这些图形 🖍️ (比如:红色、蓝色)。 你希望你的程序能够支持所有形状的图形用所有颜色来填充,而且以后还可以方便地添加新的形状和新的颜色 ➕。

桥接模式,就是将抽象部分与实现部分分离,使它们都可以独立地变化! 它可以让你在不修改原有代码的基础上,扩展抽象部分和实现部分的功能 ➕。

简单来说,就是把两个变化维度分开,让他们各自独立发展! ↔️

  • 你有两个或多个独立的维度需要变化: 就像图形的形状和图形的颜色是两个独立的维度 🎨🖍️!
  • 你想避免类爆炸: 就像你不想为每种形状和颜色的组合都创建一个新的类 🔴圆形, 🟦矩形!
  • 你想让抽象部分和实现部分可以独立地扩展: 就像你想方便地添加新的图形形状和新的颜色 ➕!

二、 为什么要用桥接模式?

用桥接模式,好处多多 👍:

  • 分离抽象和实现: 将抽象部分和实现部分分离,降低耦合度 🔗!
  • 扩展性好: 可以独立地扩展抽象部分和实现部分的功能 ➕!
  • 灵活性高: 可以动态地组合不同的抽象部分和实现部分,实现不同的功能组合 🤸!
  • 避免了类爆炸问题: 不需要创建大量的子类,减少了类的数量 💥!

三、 桥接模式的实现方式

桥接模式主要包含以下几个角色:

  • Abstraction(抽象类): 定义抽象类的接口,维护一个指向Implementor类型对象的引用。 🎨 (比如:图形)
  • RefinedAbstraction(细化抽象类): 扩展抽象类定义的接口。 🎨 (比如:带边框的图形)
  • Implementor(实现类接口): 定义实现类的接口,这个接口不一定要与Abstraction的接口完全一致,事实上这两个接口可以完全不同。 通常Implementor接口提供基本操作,而Abstraction接口提供基于这些基本操作的较高层次的操作。 🖍️ (比如:颜色)
  • ConcreteImplementor(具体实现类): 实现Implementor接口并定义它的具体实现。 🖍️ (比如:红色、蓝色)

代码示例:

// 实现类接口:颜色
public interface Color {String fill(); // 填充颜色
}// 具体实现类:红色
public class Red implements Color {@Overridepublic String fill() {return "红色";}
}// 具体实现类:蓝色
public class Blue implements Color {@Overridepublic String fill() {return "蓝色";}
}// 抽象类:图形
public abstract class Shape {protected Color color; // 组合颜色对象public Shape(Color color) {this.color = color;}public abstract String draw(); // 绘制图形
}// 细化抽象类:圆形
public class Circle extends Shape {public Circle(Color color) {super(color);}@Overridepublic String draw() {return "绘制圆形,填充" + color.fill();}
}// 细化抽象类:矩形
public class Rectangle extends Shape {public Rectangle(Color color) {super(color);}@Overridepublic String draw() {return "绘制矩形,填充" + color.fill();}
}// 客户端
public class Client {public static void main(String[] args) {Color red = new Red(); // 创建红色对象Shape circle = new Circle(red); // 创建红色圆形对象System.out.println(circle.draw()); // 绘制红色圆形Color blue = new Blue(); // 创建蓝色对象Shape rectangle = new Rectangle(blue); // 创建蓝色矩形对象System.out.println(rectangle.draw()); // 绘制蓝色矩形}
}

分析:

  • Color 是实现类接口,定义了颜色的填充方法。
  • RedBlue 是具体实现类,分别实现了红色和蓝色。
  • Shape 是抽象类,组合了颜色对象,并定义了绘制图形的方法。
  • CircleRectangle 是细化抽象类,分别实现了圆形和矩形。

输出结果:

绘制圆形,填充红色
绘制矩形,填充蓝色

四、 桥接模式的优缺点

优点:

  • 分离抽象和实现 🔗!
  • 扩展性好 ➕!
  • 灵活性高 🤸!
  • 避免了类爆炸问题 💥!

缺点:

  • 增加了系统的复杂度 😫!
  • 需要识别出两个独立的维度,设计难度较高 🧠!

五、 桥接模式的应用场景

  • 当一个类存在两个或多个独立变化的维度,且这两个维度都需要扩展时: 就像图形的形状和图形的颜色 🎨🖍️!
  • 当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时: 就像需要动态地组合不同的图形和颜色 🎨🖍️!
  • 避免类爆炸: 就像避免为每种形状和颜色的组合都创建一个新的类 🔴圆形, 🟦矩形!
  • 跨平台GUI库: 不同的操作系统有不同的GUI实现,桥接模式可以将GUI的抽象接口与具体的操作系统实现分离。

六、 总结

  • 桥接模式就像把两个变化维度分开,让他们各自独立发展! ↔️
  • 主要包含抽象类、细化抽象类、实现类接口和具体实现类四个角色! 🎭
  • 优点是分离抽象和实现、扩展性好、灵活性高、避免类爆炸! 👍
  • 缺点是增加复杂度、设计难度较高! 👎
  • 适用于存在两个或多个独立变化的维度,且这两个维度都需要扩展的场景! 🎯

希望这篇文章能让你更容易理解桥接模式! 💯 祝你学习愉快! 😄
看完请看:(十)趣学设计模式 之 外观模式!

http://www.dtcms.com/wzjs/556419.html

相关文章:

  • 登不上建设企业网站装修公司营销网站模板
  • 科技成果展示网站建设方案网站dns
  • 茂名网站制作计划seo优化技术是什么
  • 农村网站建设的意义做特卖网站
  • 网站搭建模板中关村手机在线
  • wap网站欣赏上海网站建设乐云seo
  • 响水做网站需要多少钱企业建设营销网站的目的是什么
  • 宁波专业制作网站北京市网站建设企业
  • 网站注册价格网站加速器免费
  • 家居装修企业网站源码专业做网站建设的公司
  • 赣州网站建设需要多少钱文档管理软件
  • 找单位做网站需要注意什么点赞分享打赏 wordpress
  • 长汀网站建设wordpress teamtalk
  • 购物网站有哪些模块写一篇软文1000字
  • 金华商城网站制作wordpress 卡片式
  • 怎么看网站备案号基于php的网站设计与实现
  • ip做网站需要过白名单吗汕头网站建设哪家好
  • 中英文 微信网站 怎么做郑州app定制开发公司
  • 站长之家备案查询江西建筑人才网招聘
  • 网站建设范文建网站需要费用
  • 用凡科做网站好弄吗网站不备案会怎么样
  • 接单子做网站搜狗搜索排名优化
  • ppt模板下载免费版网站vps做网站教程
  • 个人博客手机网站模板定制网站建设公司有哪些
  • 门户网站建设需要多少前几年做啥网站致富
  • 长春建站推荐企业门户网站建设方案书
  • 为什么不建议做运维深圳网站seo设计
  • 网站管理系统怎么做论坛网站文本抓取怎么做
  • 深圳网站优化排名公司wordpress twentyten
  • 今科云平台网站建设wordpress支付界面出现500