桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。桥接模式类似于多重继承方案,但是多重继承方案往往违背了类得单一职责原则,其复用性比较差,桥接模式是比多重继承方案更好的解决方法。

优点:

1)可以将接口与实现相分离。

2)提高了可扩展性。

3)对客户端隐藏了实现的细节。

使用场景:

1)想避免在抽象及其实现之间存在永久的绑定。

2)抽象及其实现可以使用子类进行扩展。

3)抽象的实现被改动应该对客户端没有影响,不用重新编译代码。

Bridge 模式

/// <summary>
/// 像素矩阵类
/// </summary>
public class Matrix
{ } public abstract class Image
{
public void SetImp(ImageImp imp)
{
this.imp = imp;
} public abstract void ParseFile(string fileName);
protected ImageImp imp;
} public abstract class ImageImp
{
public abstract void doPaint(Matrix m);//显示像素矩阵m
}
public class WinImp:ImageImp
{
public override void doPaint(Matrix m)
{
//调用windows系统的绘制函数绘制像素矩阵
}
} public class LinuxImp:ImageImp
{
public override void doPaint(Matrix m)
{
//调用Linux系统的绘制函数绘制像素矩阵
}
}
public class JPEG:Image
{
public override void ParseFile(string fileName)
{
Matrix m = new Matrix();//此处解析BMP文件并获得一个像素矩阵对象m
imp.doPaint(m);
}
} public class BMP : Image
{
public override void ParseFile(string fileName)
{
Matrix m = new Matrix();//此处解析BMP文件并获得一个像素矩阵对象m
imp.doPaint(m);
}
} public class GIF:Image
{
public override void ParseFile(string fileName)
{
Matrix m = new Matrix();//此处解析BMP文件并获得一个像素矩阵对象m
imp.doPaint(m);
}
}

23种设计模式之桥接模式(Bridge)的更多相关文章

  1. JAVA开发的23种设计模式之 --- 桥接模式

    桥接模式 概述:将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化.如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构.    应用场景        实现系统可能有多 ...

  2. 二十四种设计模式:桥接模式(Bridge Pattern)

    桥接模式(Bridge Pattern) 介绍将抽象部分与它的实现部分分离,使它们都可以独立地变化. 示例有一个Message实体类,对它的操作有Insert()和Get()方法,现在使这些操作的抽象 ...

  3. 【Unity3D与23种设计模式】桥接模式(Bridge)

    GoF定义: "将抽象与实现分离,使二者可以独立的变化" 游戏中,经常有这么一种情况 基类角色类(ICharacter),下面有子类士兵类(ISoldier).敌军类(IEnemy ...

  4. 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern)

    原文:乐在其中设计模式(C#) - 桥接模式(Bridge Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern) 作者:webabcd 介绍 ...

  5. java的23种设计模式之建造者模式

    场景和本质 场景 本质 案例 原理 应用场景 场景和本质 场景 我们要建造一个复杂的产品.比如:神州飞船,Iphone.这个复杂的产品的创建.有这样一个问题需要处理:装配这些子组件是不是有个步骤问题? ...

  6. 实践GoF的23种设计模式:建造者模式

    摘要:针对这种对象成员较多,创建对象逻辑较为繁琐的场景,非常适合使用建造者模式来进行优化. 本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:建造者模式>,作者: 元闰子. 简 ...

  7. php 23种设计模型 - 桥接模式

    桥接模式(Bridge) 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦. 这种模式涉 ...

  8. 【设计模式】桥接模式 Bridge Pattern

    开篇还是引用吕振宇老师的那篇经典的文章<设计模式随笔-蜡笔与毛笔的故事>.这个真是太经典了,没有比这个例子能更好的阐明桥接模式了,这里我就直接盗来用了. 现在市面上卖的蜡笔很多,各种型号, ...

  9. python 设计模式之桥接模式 Bridge Pattern

    #写在前面 前面写了那么设计模式了,有没有觉得有些模式之间很类似,甚至感觉作用重叠了,模式并不是完全隔离和独立的,有的模式内部其实用到了其他模式的技术,但是又有自己的创新点,如果一味地认为每个模式都是 ...

随机推荐

  1. asp.net单击头模板中的checkbox,实现datalist中所有chebox的全选和取消

    转载时请以超链接形式标明文章原始出处和作者信息及本声明http://blueseach.blogbus.com/logs/31281126.html 使用C#和javascript都可以实现,第二种更 ...

  2. 软件设计模式之工厂模式(JAVA)

    什么是工厂模式? 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式.著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见.因为工厂模式就相 ...

  3. ARC介绍

    从Ray Wenderlich的教程中截取了一小段作为对objective c中ARC的介绍,讲得比较清晰,原文有丰富的例子,见此 它是怎么工作的 你大概已经熟悉如何手工管理内存了, 就像这样:如果你 ...

  4. 最新Java校招面试题及答案

    本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几个部分: Java 基础知识点 Java 常见集合 ...

  5. WPF - How to force a Command to re-evaluate 'CanExecute' via its CommandBindings

    Not the prettiest in the book, but you can use the CommandManager to invalidate all commandbinding: ...

  6. Linux同时安装python2和Python3

    我们以Ubuntu 为例,默认地,Linux安装好后会默认安装python2版本: 安装Python3: For Debian:   [user@host]$ sudo apt-get install ...

  7. Centos7.3.1611安装mysql5.7.18 rpm教程 并设置datadir

    一.卸载MariaDB CentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了mysql相关的软件包.因为MariaDB和MySQL可能会冲突,故先卸载MariaDB. 1. ...

  8. Quatz入门

    Demo SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory(); Scheduler sched = sched ...

  9. messagpack的使用

    我打算使用messagepack对通信的对象进行序列化,使用的方式参考这篇文章: http://www.cppfans.org/1410.html 此处记录一下自己遇到的一些问题 先是用VS2010对 ...

  10. openssl & openssh

    什么是OpenSSL众多的密码算法.公钥基础设施标准以及SSL协议,或许这些有趣的功能会让你产生实现所有这些算法和标准的想法.果真如此,在对你表示敬佩的同时,还是忍不住提醒你:这是一个令人望而生畏的过 ...