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

flash网站引导页建设上海网站

flash网站引导页,建设上海网站,网站建设公司上海站霸,免费制作logo软件桥接模式#xff08;Bridge Pattern#xff09;学习笔记 #x1f31f; 定义 桥接模式属于结构型设计模式#xff0c;将抽象部分与实现部分分离#xff0c;使它们可以独立变化。通过组合代替继承的方式#xff0c;解决多维度的扩展问题#xff0c;防止类爆炸。 #x…桥接模式Bridge Pattern学习笔记 定义 桥接模式属于结构型设计模式将抽象部分与实现部分分离使它们可以独立变化。通过组合代替继承的方式解决多维度的扩展问题防止类爆炸。 适用场景 需要避免抽象与实现之间的永久绑定多个维度变化的系统如形状×颜色×材质需要在运行时切换实现存在多个独立扩展的维度需要共享实现多个对象共享相同实现 模式结构 类图 #mermaid-svg-n6M9XVTHLyLQD9Ma {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-n6M9XVTHLyLQD9Ma .error-icon{fill:#552222;}#mermaid-svg-n6M9XVTHLyLQD9Ma .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-n6M9XVTHLyLQD9Ma .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-n6M9XVTHLyLQD9Ma .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-n6M9XVTHLyLQD9Ma .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-n6M9XVTHLyLQD9Ma .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-n6M9XVTHLyLQD9Ma .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-n6M9XVTHLyLQD9Ma .marker{fill:#333333;stroke:#333333;}#mermaid-svg-n6M9XVTHLyLQD9Ma .marker.cross{stroke:#333333;}#mermaid-svg-n6M9XVTHLyLQD9Ma svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-n6M9XVTHLyLQD9Ma g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-n6M9XVTHLyLQD9Ma g.classGroup text .title{font-weight:bolder;}#mermaid-svg-n6M9XVTHLyLQD9Ma .nodeLabel,#mermaid-svg-n6M9XVTHLyLQD9Ma .edgeLabel{color:#131300;}#mermaid-svg-n6M9XVTHLyLQD9Ma .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-n6M9XVTHLyLQD9Ma .label text{fill:#131300;}#mermaid-svg-n6M9XVTHLyLQD9Ma .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-n6M9XVTHLyLQD9Ma .classTitle{font-weight:bolder;}#mermaid-svg-n6M9XVTHLyLQD9Ma .node rect,#mermaid-svg-n6M9XVTHLyLQD9Ma .node circle,#mermaid-svg-n6M9XVTHLyLQD9Ma .node ellipse,#mermaid-svg-n6M9XVTHLyLQD9Ma .node polygon,#mermaid-svg-n6M9XVTHLyLQD9Ma .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-n6M9XVTHLyLQD9Ma .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-n6M9XVTHLyLQD9Ma g.clickable{cursor:pointer;}#mermaid-svg-n6M9XVTHLyLQD9Ma g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-n6M9XVTHLyLQD9Ma g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-n6M9XVTHLyLQD9Ma .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-n6M9XVTHLyLQD9Ma .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-n6M9XVTHLyLQD9Ma .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-n6M9XVTHLyLQD9Ma .dashed-line{stroke-dasharray:3;}#mermaid-svg-n6M9XVTHLyLQD9Ma #compositionStart,#mermaid-svg-n6M9XVTHLyLQD9Ma .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-n6M9XVTHLyLQD9Ma #compositionEnd,#mermaid-svg-n6M9XVTHLyLQD9Ma .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-n6M9XVTHLyLQD9Ma #dependencyStart,#mermaid-svg-n6M9XVTHLyLQD9Ma .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-n6M9XVTHLyLQD9Ma #dependencyStart,#mermaid-svg-n6M9XVTHLyLQD9Ma .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-n6M9XVTHLyLQD9Ma #extensionStart,#mermaid-svg-n6M9XVTHLyLQD9Ma .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-n6M9XVTHLyLQD9Ma #extensionEnd,#mermaid-svg-n6M9XVTHLyLQD9Ma .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-n6M9XVTHLyLQD9Ma #aggregationStart,#mermaid-svg-n6M9XVTHLyLQD9Ma .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-n6M9XVTHLyLQD9Ma #aggregationEnd,#mermaid-svg-n6M9XVTHLyLQD9Ma .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-n6M9XVTHLyLQD9Ma .edgeTerminals{font-size:11px;}#mermaid-svg-n6M9XVTHLyLQD9Ma :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} «abstract» Abstraction -implementor: Implementor operation() RefinedAbstraction operation() «interface» Implementor operationImpl() ConcreteImplementorA operationImpl() ConcreteImplementorB operationImpl() ️ 核心组成 Abstraction抽象类 定义抽象接口维护实现者对象Implementor的引用 RefinedAbstraction扩展抽象类 对抽象接口的扩展/细化 Implementor实现者接口 定义实现类的接口 ConcreteImplementor具体实现类 实现Implementor接口的具体类 代码示例 图形渲染场景 // 实现者接口颜色渲染 interface Color {String fill(); }// 具体实现类 class Red implements Color {Overridepublic String fill() {return 红色;} }class Blue implements Color {Overridepublic String fill() {return 蓝色;} }// 抽象类形状 abstract class Shape {protected Color color;public Shape(Color color) {this.color color;}abstract String draw(); }// 扩展抽象类 class Circle extends Shape {public Circle(Color color) {super(color);}Overridepublic String draw() {return 圆形 ➤ 填充颜色 color.fill();} }class Square extends Shape {public Square(Color color) {super(color);}Overridepublic String draw() {return 方形 ■ 填充颜色 color.fill();} }// 客户端使用 public class Client {public static void main(String[] args) {Color red new Red();Color blue new Blue();Shape redCircle new Circle(red);Shape blueSquare new Square(blue);System.out.println(redCircle.draw()); // 圆形 ➤ 填充颜色红色System.out.println(blueSquare.draw()); // 方形 ■ 填充颜色蓝色} }✅ 优点 解耦抽象与实现提高扩展性避免多层继承导致的类爆炸符合开闭原则可独立扩展抽象层和实现层符合单一职责原则抽象关注高层逻辑实现关注底层细节运行时切换实现动态绑定 ⚠️ 缺点 增加系统复杂度需要正确识别抽象和实现两个维度对高内聚的系统可能不适用需要更多的设计前期分析 相关模式对比 模式区别适配器模式事后补救 vs 事前设计抽象工厂可与桥接模式配合创建实现对象策略模式侧重算法替换 vs 结构分离 实践建议 识别变化维度至少有两个独立变化的维度优先组合使用组合代替继承接口设计保持Implementor接口足够精简桥接管理可使用工厂模式创建桥接对象多层桥接支持多级桥接如抽象→中间层→实现 典型应用 GUI开发 窗口系统不同OS的窗口实现控件渲染按钮×主题 驱动程序 JDBC驱动程序打印机驱动程序 跨平台应用 不同数据库的SQL生成器不同支付渠道的支付接口 实现要点 委托代替继承 // 传统继承方式类爆炸 class RedCircle extends Circle {} class BlueCircle extends Circle {} class RedSquare extends Square {} // ...其他组合// 桥接模式方式 new Circle(new Red())动态切换实现 Shape shape new Circle(new Red()); shape.draw(); // 红色圆形shape.color new Blue(); // 切换颜色实现 shape.draw(); // 蓝色圆形JDBC中的桥接模式 // 抽象Connection接口 // 实现Driver实现类 Class.forName(com.mysql.jdbc.Driver); Connection conn DriverManager.getConnection(url);扩展应用 多格式日志系统 日志级别DEBUG/INFO/ERROR× 输出格式文本/JSON/XML 跨平台文件操作 文件类型普通/加密× 存储系统本地/FTP/云存储 游戏角色系统 角色职业战士/法师× 装备套装轻甲/重甲 掌握桥接模式的关键在于理解多维变化的分离思想通过将抽象与实现解耦可以实现更灵活的系统架构特别适合需要应对多维度扩展的复杂系统设计。
http://www.dnsts.com.cn/news/83876.html

相关文章:

  • 如何建立单页网站跨境电商怎么注册
  • 网站制作 成功案例河南seo网站多少钱
  • 做选择的网站可信的专业网站建设
  • 做微信网站neutral wordpress
  • 好看的公司网站怀柔高端网站建设
  • 深圳如何做网站南宁企业建站
  • 网站建设贰金手指科捷6弹幕网站如何做
  • 理财网站免费建设免费发布网站建设的平台
  • 望牛墩做网站网站建设策划书提纲
  • 网站建设利润越来越低网站成功案例分析
  • wordpress添加文章总数标签总数云平台网站优化
  • 这个是以前我自己做的一个网站传统营销
  • jsp开发网站全媒体运营师报名入口
  • 成都网站改版网站建设实训致谢语
  • 有什么网站可以做微信西湖区网站建设
  • 怎样做网站兼职攻击asp网站
  • asp.netmvc 做网站网站推广的四个阶段
  • 百度seo优化方案湛江做网站seo
  • 网站如何发布到网上做网站要学些什么
  • 做it行业招标网站有哪些长沙企业100强名单
  • 怎样建设外贸网站ui界面设计培训班
  • 建设银行网站多少静态网站建设开发
  • 吴江区建设工程招标网站青岛手机网站建设
  • 网站空间到期怎么办西安网站建设工程
  • 家具营销型网站模板公司做网站的价格江阴
  • 什么是网站主题优化请人做网站注意事项
  • 手把手教你学网站建设拼多多采用了哪些网络营销方式
  • 电商做网站公益组织网站源码
  • html网站开发例子上海建设行业的资质网站
  • 设计制作简单的手机网站公司网站开发费用兴田德润在哪儿