zoukankan      html  css  js  c++  java
  • 设计模式之 桥接模式

    桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。

    这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。

    简单点说,就是处理 包含 与 被包含 两部分的解耦关系(“包含”说得也不是很准确,暂时想不到合适的词,就先用这个词),就像 手机和手机上的软件、咖啡杯和咖啡杯里的咖啡、图像和图像染的颜色  一样 。

    举个例子:

    咖啡店营业,菜单里面有 摩卡、拿铁、卡布奇诺  三种咖啡,每种都对应有 大、中、小 三种规格。

    为了满足客人的各种需求,该怎么把杯子的大小和咖啡的种类联系在一起呢?大杯摩卡、中杯摩卡、小杯摩卡、大杯拿铁...

    如果把 杯子规格和咖啡种类 绑死在一起,三种咖啡豆都有自己特有的规格,那就要准备 3*3=9 种杯子了。

    看到这里,你可能会觉得这种做法很笨,不会有人这么做。因为这个例子很简单,生活中一般不会有人这么做,这都成为了一种常识。那你们可以想一下其他例子---蜡笔和画笔的对比(蜡笔就是把规格和颜色绑定死了的,但画笔是分离开的)

    其实我们都知道正确的做法是,只要 准备三种规格的杯子 就想行了,不同需求再倒入不同的咖啡。这个时候,咖啡杯的规格和具体的咖啡就分隔开了,彼此的改变都不会影响到对方。这个就是用到了桥接模式。

    因为 该模式的类图 就像 一座桥 ,所以称为 “桥接模式” 。(小编比较懒,后面再补上类图)

    共同学习,共同进步,若有补充,欢迎指出,谢谢!

  • 相关阅读:
    Windows API
    c# 各类型数据库连接字符串格式
    [C#/C++]C#调用非托管DLL的APIs
    (F#) How to enable F# template working under Visual Studio 2010 Shell.
    ubuntu文件、目录操作基本命令
    javascript curry
    C#中组件与控件的主要区别是什么?
    下拉菜单
    js 尺寸和位置 笔记
    $.each
  • 原文地址:https://www.cnblogs.com/dengguangxue/p/11676157.html
Copyright © 2011-2022 走看看