桥梁(Bridge)模式:
一、桥梁模式的用意
桥梁模式的用意是:将抽象化与实现化脱耦,使得二者可以独立地变化。
1、抽象化
存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样
的实体对待。
2、实现化
抽象化给出的具体实现就是实现化。
一个类的实例就是这个类的实现化,一个具体子类是它的抽象超类的实现化。而在更加复杂的情况下,实现化也可以是与抽象化
等级结构相平行的等级结构,同样可以由抽象类和具体类组成。
3、脱耦
所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是脱耦。
在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。
所谓强关联,就是在编译时期已经确定的,无法在运行时期动态改变的关联;
所谓弱关联,就是可以动态地确定并且可以在运行时期动态改变的关联。
在java中,继承关系是强关联,而聚合关系是弱关联。
因此,桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,
从而使两者可以相对独立地变化。这就是桥梁模式的用意。
二、一个制造飞机的系统例子
//抽象化角色类
public abstract class Airplace{
public abstract void fly();
protected AirplaceMaker airplaneMaker;
}
//修正化抽象角色(载客飞机)
public class PassengerPlane extends Airplane{
public void fly(){
//...........
}
}
//修正化抽象角色(载货飞机)
public class CargoPlane extends Airplane{
public void fly(){
//................
}
}
//实现化角色(飞机制造商)
public abstract class AirplaneMaker{
public abstract void produce();
}
//具体实现化类
public class Airbus extends AirplaneMaker{
public void produce(){
//...........
}
}
public class Boeing extends AirplaneMaker{
public void produce(){
//...........
}
}
public class MD extends AirplaneMaker{
public void produce(){
//...........
}
}
三、在什么情况下使用桥梁模式
1、如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系。
2、设计要求实现化角色的任何改变不应当影响客户端,或者说实现化角色的改变对客户端是完全透明的。
3、一个构件有多于一个的抽象化角色和实现化角色,系统需要它们之间进行动态耦合。
4、虽然在系统中使用继承是没有问题的,但是由于抽象化角色和具体化角色需要独立变化,设计要求需要独立管理这两者。
分享到:
相关推荐
设计模式C++学习之桥梁模式(Bridge)
23种设计模式之六(结构型模式)Bridge模式
Bridge 桥接模式(结构型模式)视频
bridge结构设计模式
C#面向对象设计模式纵横谈(8):Bridge 桥接模式(结构型模式) 体验课程
创建型模式 (100%) 设计模式面面观(8):创建型模式总结 (100%) 设计模式面面观(9):适配器模式(Adapter Pattern)-结构型模式 (100%) 设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式 ...
Bridge模式代码Bridge模式代码Bridge模式代码Bridge模式代码
软件设计模式,共包含二十多种模式,做IT的必备知识呀!
C#面向对象设计模式纵横谈(8):Bridge 桥接模式(结构型模式) (Level 300)
23种设计模式的java实现之Bridge,代码实现
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源... 这是第8节:结构型模式Bridge桥接模式
Bridge模式是对抽象和具体的进一步抽象。假设你有一个抽象类,一个具体类,现在需要将两者的变化都考虑进去,这就需要bridge。这是经典设计模式中唯一的可以同时处理抽象和具体同时变化的设计模式
7、桥接模式(bridge) 用意:将抽象部分和实现部分分离,使他们可以独自变化
C#面向对象设计模式 Bridge 桥接模式 视频讲座下载
这是JAVA设计模式中属于结构模式的部分,包括Flyweight(共享模式)、Bridge(桥模式)、Decorator(装饰模式)、Composite(组合模式)、Adapter(适配器模式)、Proxy(代理模式)、Facade (外观模式)的源代码。其中有些模式中...
桥梁计算机辅助设计Bridge CAD.pdf
主要介绍了Java设计模式之桥模式(Bridge模式)介绍,本文讲解了为什么使用桥模式、如何实现桥模式、Bridge模式在EJB中的应用等内容,需要的朋友可以参考下
Docker在创建容器时有四种网络模式,bridge为默认不需要用--net去指定,其他...那Docker为网络bridge模式指定容器ip该如何实现呢?下面通过通过这篇文章一起看看吧,文中给出了详细的示例代码,有需要的可以参考借鉴。