• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2020-09-24 02:30 Aet 隐藏边栏 |   抢沙发  8 
文章评分 3 次,平均分 5.0

概述

设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:

  • 第一种设计方案是为每一种形状都提供一套各种颜色的版本。
  • 第二种设计方案是根据实际需要对形状和颜色进行组合

对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更少,且系统扩展更为方便。设计方案二即是桥接模式的应用。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码编写量。

定义

将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。

角色

  • Abstraction:抽象类
  • RefinedAbstraction:扩充抽象类
  • Implementor:实现类接口
  • ConcreteImplementor:具体实现类

场景

  • 想要避免抽象及其实现之间的永久绑定
  • 抽象及其实现都应该可以通过子类扩展
  • 抽象实现的更改不应对客户端产生影响
  • 想完全向客户端隐藏抽象的实现

实现一

实现二

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2023-07-26
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享