职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 308|回复: 9

设计模式之 - Bridge模式

[复制链接]
爱车车 发表于 2011-8-25 10:02 | 显示全部楼层 |阅读模式
  Bridge 模式是模式里面最难理解同时也是功能非常强大的一个模式, 下面我们就来谈一谈它的核心思想适用场合欢迎有兴趣的同行一起探讨补充。

设计模式一书中原话描述这一模式: 将抽象与其实现解耦,使它们可以独立的适应变化。

Bridge 模式要解决的问题是: 当一个抽象有不同实现的时候,它可以使抽象和实现相互独立的进行变化。

适用场合: 对业务逻辑进行分析找到变化的部分放在各自的抽象类中,在分析这些抽象类之间的关系,使其能够做到相互独立的类中包含变化,从而使未来发生变化的部分很小程度的或者不影响当前的代码。

简单理解该模式由一个抽象(包括其派生类)和一个实现组成。



看一个具体一点的例子:

比如说常见的画图实现




Java代码  
public abstract class Shape {   
      
    protected AbstractDrawing myDrawing;   
      
    abstract public void draw();   
      
    Shape(AbstractDrawing drawing)   
    {   
        this.myDrawing = drawing;   
    }   
      
    protected void drawLine(double x1, double y1, double x2, double y2)   
    {   
        myDrawing.drawLine(x1, y1, x2, y2);   
    }   
      
    protected void drawCircle(double x, double y, double r)   
    {   
        myDrawing.drawCircle(x, y, r);   
    }   
  
}  

public abstract class Shape {
       
        protected AbstractDrawing myDrawing;
       
        abstract public void draw();
       
        Shape(AbstractDrawing drawing)
        {
                this.myDrawing = drawing;
        }
       
        protected void drawLine(double x1, double y1, double x2, double y2)
        {
                myDrawing.drawLine(x1, y1, x2, y2);
        }
       
        protected void drawCircle(double x, double y, double r)
        {
                myDrawing.drawCircle(x, y, r);
        }

}
Java代码  
public abstract class AbstractDrawing {   
    abstract public void drawLine(double x1, double y1, double x2, double y2);   
    abstract public void drawCircle(double x, double y, double r);   
}  

public abstract class AbstractDrawing {
        abstract public void drawLine(double x1, double y1, double x2, double y2);
        abstract public void drawCircle(double x, double y, double r);
}




大小: 6.7 KB

大小: 52.6 KB
查看图片附件

走失的猫咪 发表于 2011-8-25 10:02 | 显示全部楼层
图全挂了。··

秋秋 发表于 2011-8-25 10:02 | 显示全部楼层
seagod.wong 写道
图全挂了。··

不会吧,看不到图吗?我自己看都能看到的啊。

北大青鸟 发表于 2011-8-25 10:02 | 显示全部楼层
是看不到图

醉倚西风 发表于 2011-8-25 10:02 | 显示全部楼层
这是传说的桥接吗

江南枫 发表于 2011-8-25 10:02 | 显示全部楼层
LZ头像没挂

郁闷小男人 发表于 2011-8-25 10:02 | 显示全部楼层
楼主发完贴就拆桥了。
不过我觉得抽象工厂比桥模式更难理解。

话说我当年 发表于 2011-8-25 10:03 | 显示全部楼层
呵呵,看不到图,楼主的桥 不合格呀

芷馨 发表于 2011-8-25 10:03 | 显示全部楼层
确实看不到图,不过应该不是很难理解吧

有烟没火 发表于 2011-8-25 10:03 | 显示全部楼层
说实话,楼主讲的不是很清楚,应该有一大部分人看不太明白

桥接最大的好处是可以防止类膨胀的,并且能更好的复用,增加后期的可维护性。。。。

这些楼主没表达出来
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-9 22:33 , Processed in 0.156856 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表