zoukankan      html  css  js  c++  java
  • 设计模式之结构型(4)-桥接模式(Bridge)

    (一)定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。(将一个对象多维度的变化分离)

    ① 桥接模式主要用意是为了实现抽象部分与实现部分脱耦,使它们各自可以独立变化。
    ② 在开发过程中通常会遇到一个对象有两个变化维度,而且这两个维度变化地非常剧烈,这种变化导致了纵横交错的结果,使对象的设计变得困难,并且在对象数量上和可扩展性上都带来了很大的麻烦。此时我们应当把这两个变化比较剧烈的维度拆离,然后用组合的方式把它们结合在一起。这就是桥接器模式的思想
    相关模式:适配器模式,策略模式

    1.1 UML定义类图

    image

    1.2 类的定义

    示例

    场景一:假设用蜡笔画一幅画。要使用12种颜色,且有大中小号蜡笔来画,则需要36种不同的蜡笔。但是如果我们用大中小三种不同的毛笔,再配上12种不同的颜色。则只需要12+3=15个对象就可以完成绘画。
      实际上,蜡笔和毛笔的关键一个区别在于笔和颜色是否能够分离。桥梁模式的用意是“将抽象化与实现化脱耦,使得二者可以独立地变化”。关键就在于能否脱耦。蜡笔的颜色和蜡笔本身是分不开的,所以造成必须使用36支色彩、大小各异的蜡笔来绘制图画。而毛笔与颜料能够很好的脱耦,各自独立变化,便简化了操作。在这里,抽象层面的概念是:“毛笔用颜料作画”,而在实现时,毛笔有大中小三号,颜料有红绿蓝等12种,于是便可出现3*12种组合。每个参与者(毛笔与颜料)都可以在自己的自由度上随意转换。
      蜡笔由于无法将笔与颜色分离,造成笔与颜色两个自由度无法单独变化,使得只有创建36种对象才能完成任务。桥接模式将继承关系转换为组合关系,从而降低了系统间的耦合,减少了代码编写量。

    代码

    image

  • 相关阅读:
    Spring 3.0 发布候选版 3 已经可用!
    NetBeans IDE 6.8 正式版发布!
    250g铜版纸 打印扑克?
    一键安装python
    京东商城副总裁李曦:大数据和电子商务_行业信息化_IT商业新闻网
    9.29的北京-》杭州的票怎么现在网上还没有可以预订呢。。。
    运动服火鸟2代三叶草运动服SWIM CLUB 1976款游泳秋装男款海马淘宝网
    无锡巨人网络科技有限公司简介20120411
    李国庆送的国旗太小了,没动力买东西
    虽然不信god,但是技术上还是算是有信yan的人吧
  • 原文地址:https://www.cnblogs.com/lihuali/p/7492940.html
Copyright © 2011-2022 走看看