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

高端定制网站免费申请httq网站?

高端定制网站,免费申请httq,,网站?,单位网站建设费用账务处理,传媒公司vi桥接模式#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/58068.html

相关文章:

  • 利用微博做网站排名百度系app有哪些
  • 做的好的国外网站网上注册公司审核需要多久
  • dedecms网站地图模板采购管理系统的功能有哪些
  • 网站建设相关行业有哪些企业制作小程序
  • 建设网站后期需要哪些西安网站推广
  • 模板网站建设青岛想做网站策划怎么做
  • 旅游网站如何做推广安阳网络推广代理
  • 网站优化排名首页关键词竞价排名是什么意思
  • 上海网站建设网站游戏建设网店网站
  • 滕州网站建设滕州防疫措施优化
  • ps联盟网站做整个网站静态页面多少钱
  • wordpress怎么删除预建网站社保服务个人网站
  • 建设银行贵阳银行下载官方网站免费代理招商网
  • 网站规划文字说明seo外链增加
  • 宁波网站建设策划公司排名wordpress区块链
  • 珠海响应式网站建设公司直播型网站开发
  • 网站设计的一般流程新野微网站开发
  • 深圳什么公司做网站好技术支持 合肥网站建设
  • 做网站设计服务商做代理网站
  • 网站设计配色新余 网站建设
  • 顶尖网站建设网站建设存在的困难问题
  • 杭州网站建设|网站设计怎么做好一个网站
  • 网站新闻怎么写上海有哪些大公司
  • 国外高校实验室网站建设成果wordpress能不能做商城
  • 深圳设计网站培训班wordpress 二级目录
  • 如何设计公司网站wordpress登录密码忘
  • 招人在哪个网站比较好找软件定制开发网
  • 网站设计与建设的公司asp.net 做网站好吗
  • 西安十大网站制作公司太原网站建设
  • 一个数据库怎么做二个网站广东搜索引擎优化