我是靠谱客的博主 迷你夏天,最近开发中收集的这篇文章主要介绍桥接模式和路由模式区别_设计模式之桥接模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

为了巩固跟复习22个设计模式,每天不定时发表一篇(周末大于一篇) 关于设计模式的文稿!今天写的是结构型模式中的“桥接模式”。

  • 定义

桥接模式是一种结构型设计模式, 可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用。

  • 桥接模式结构
5e075f78502985d65f6cd09a7e5b0a10.png

桥接模式结构

  1. 抽象部分 (Abstraction) 提供高层控制逻辑, 依赖于完成底层实际工作的实现对象。
  2. 实现部分 (Implementation) 为所有具体实现声明通用接口。 抽象部分仅能通过在这里声明的方法与实现对象交互。抽象部分可以列出和实现部分一样的方法, 但是抽象部分通常声明一些复杂行为, 这些行为依赖于多种由实现部分声明的原语操作。
  3. 具体实现 (Concrete Implementations) 中包括特定于平台的代码。
  4. 精确抽象 (Refined Abstraction) 提供控制逻辑的变体。 与其父类一样, 它们通过通用实现接口与不同的实现进行交互。
  5. 通常情况下, 客户端 (Client) 仅关心如何与抽象部分合作。 但是, 客户端需要将抽象对象与一个实现对象连接起来。
  • 适应场景
  1. 如果你想要拆分或重组一个具有多重功能的庞杂类 (例如能与多个数据库服务器进行交互的类), 可以使用桥接模式。
  2. 如果你希望在几个独立维度上扩展一个类, 可使用该模式。
  3. 如果你需要在运行时切换不同实现方法, 可使用桥接模式。
  • 实现方式
  1. 明确类中独立的维度。 独立的概念可能是: 抽象/平台, 域/基础设施, 前端/后端或接口/实现。
  2. 了解客户端的业务需求, 并在抽象基类中定义它们。
  3. 确定在所有平台上都可执行的业务。 并在通用实现接口中声明抽象部分所需的业务。
  4. 为你域内的所有平台创建实现类, 但需确保它们遵循实现部分的接口。
  5. 在抽象类中添加指向实现类型的引用成员变量。 抽象部分会将大部分工作委派给该成员变量所指向的实现对象。
  6. 如果你的高层逻辑有多个变体, 则可通过扩展抽象基类为每个变体创建一个精确抽象。
  7. 客户端代码必须将实现对象传递给抽象部分的构造函数才能使其能够相互关联。 此后, 客户端只需与抽象对象进行交互, 无需和实现对象打交道。
  • 桥接模式的优缺点

优点:1)你可以创建与平台无关的类和程序。

2)客户端代码仅与高层抽象部分进行互动,不会接触到平台的详细信息。

3)开闭原则。你可以新增抽象部分和实现部分,且它们之间不会相互影响。

4)单一职责原则。抽象部分专注于处理高层逻辑,实现部分处理平台细节。

缺点:1)对高内聚的类使用该模式可能会让代码更加复杂。

  • 在Java 中桥接模式的应用

桥接模式在处理跨平台应用、 支持多种类型的数据库服务器或与多个特定种类 (例如云平台和社交网络等) 的 API 供应商协作时会特别有用

  • 如何识别桥接模式

桥接可以通过一些控制实体及其所依赖的多个不同平台之间的明确区别来进行识别。

最后

以上就是迷你夏天为你收集整理的桥接模式和路由模式区别_设计模式之桥接模式的全部内容,希望文章能够帮你解决桥接模式和路由模式区别_设计模式之桥接模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部