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

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

    模式动机:

      现需要绘制矩形、原型、椭圆、长方形、正方形,绘制的图形需要有红色、绿色、蓝色等,此时有两种设计方案。第一种为每一种形状窦提供一套各种颜色的版本。第二种根据实际需要对形状和颜色进行组合。

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

    模式结构:

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

    具体类图:

                      

      类图解析:Pen为抽象类,不同型号的铅笔继承Pen。Pen中有对象属性color,Color是一个接口,各种不同的具体颜色分别实现了这个接口。

      流程解析:客户端知晓毛笔的型号和颜色,通过Pen和Color获取具体型号的毛笔以及具体的颜色,具体型号的毛笔中有颜色这个属性,将已获知的颜色赋予这个属性即可得到具体颜色、型号的毛笔。

    桥接模式的优点:

    • 分离抽象接口及其实现部分
    • 桥接模式类似于多继承方案
    • 提高了系统的可扩展性
    • 实现细节对客户透明,可以对用户隐藏实现细节

    缺点:

    • 增加系统的理解与设计难度
    • 需要正确的识别出系统的两个独立的变化维度,因此使其适用范围具有一定的局限性
  • 相关阅读:
    CentOS 6 网络设置修改 指定IP地址 DNS 网关
    PowerDesigner连接MySQL,建立逆向工程图解
    PowerDesigner逆向工程导入MYSQL数据库总结
    《Spring Boot官方指南》(二)入门
    初识Spring Boot框架和快速入门
    MVC中html编码与否
    WPF背景透明内嵌WebBrowser不显示问题,即AllowsTransparency = true 和 Webbrowser 等控件显示冲突
    Forms.WebBrowser与Controls.WebBrowser区别
    一些不错的网站
    强制改变css样式优先级
  • 原文地址:https://www.cnblogs.com/wfswf/p/15619323.html
Copyright © 2011-2022 走看看