`
haosimentu
  • 浏览: 8562 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

java中的桥梁模式(Bridge)理解

阅读更多
Bridge定义 : 将抽象和行为划分开来,各自独立,但能动态的结合.

首先一个功能类的继承关系很多。如一个公司有如下种类的继承,服装公司、汽车公司、宝马汽车公司、女式服装公司等
其次功能类有共同的行为,如服装公司有生产、销售,汽车公司也有生产销售
最后,把共同的行为抽象出来,形成独立的类
如:
class Corp
{
public void produce();
public void sell();
public void other();
}

public CarCorp extends Corp{};
public ClotherCorp extends Corp{};

为了增加更多的灵活性,避免在两个层次之间建立静态的联系,即避免extends的不利影响
提取一个共同行为类:Action

class Action
{
public void produce();
public void sell();
}

然后Corp类聚合Action类
class Corp
{
public Action a;
public void setAction(Action a);
{
  this.a=a;
}
public void other(Action a);
}

Action派生类CarAction、ClotherAction实现produce、sell行为

Corp派生类CarCorp、ClotherCorp操作聚合对象a,执行具体的行为。
该聚合对象即为抽象化化角色和具体化角色之间的桥梁。
这样继承关系中的行为被抽出,独立实现,降低了功能类继承关系的耦合度,行为发生变化不会影响到功能类的继承关系。即如果存在grandfather、father、son、grandson的继承关系,如果father类某行为被son和grandson继承,如果修改father的行为会影响到son。如果抽出该行为,则行为的变化不会影响到son。

高手总结的桥梁类使用场合:
1、如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系。
2、设计要求实现化角色的任何改变不应当影响客户端,或者说实现化角色的改变对客户端是完全透明的。
3、一个构件有多于一个的抽象化角色和实现化角色,系统需要它们之间进行动态耦合。
4、虽然在系统中使用继承是没有问题的,但是由于抽象化角色和具体化角色需要独立变化,设计要求需要独立管理这两者
分享到:
评论

相关推荐

    设计模式之桥梁模式实现

    桥梁模式(Bridge Pattern)是设计模式中的一种结构型模式,它的核心思想是将抽象部分与实现部分分离,使得它们可以独立地进行变化。在这个主题中,我们将深入探讨桥梁模式的原理、结构以及如何在Java中实现。 首先...

    桥梁模式实例

    在Java中实现桥梁模式,我们可以有效地解耦系统中的类,提高代码的可扩展性和可维护性。 首先,让我们理解桥梁模式的核心组件。在桥梁模式中,主要有四个角色: 1. 抽象接口(Abstraction):定义了抽象接口,它...

    java设计模式---诙谐易懂版

    代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式...桥梁模式(Bridge Pattern)、命令模式(Command Pattern)、装饰模式(Decorator Pattern)、迭代器模式(Iterator Pattern)、组合模式...

    java设计模式(电子书)

    第11章桥梁模式(BRIDGE PATTERN):将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式用以降低抽象和实现之间的耦合。 第12章命令模式(COMMAND PATTERN):将请求封装为一个对象,以便使用不同的...

    Java设计模式经典搞笑珍藏

    11. **桥梁模式(BridgePattern)**:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 12. **命令模式(CommandPattern)**:将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。 13. **...

    桥梁模式DEMO

    《桥梁模式DEMO》 ...在《DesignPattern1.8》这个压缩包中,可能包含了作者实现的桥梁模式DEMO代码,包括Java或其他编程语言的源文件,读者可以通过阅读和运行这些代码来更好地理解和掌握桥梁模式的使用。

    23种Java模式的比喻

    7. 桥梁模式(Bridge):桥接模式如同根据不同情境组合问候语,如“早上好”、“晚上好”和赞美语句,通过组合形成各种可能的表达。 8. 合成模式(Composite):例如,为MM挑选生日礼物,T恤、裙子和包包可以视为...

    java设计模式源代码(23种设计模式标准代码)

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决常见问题的模板,能够提升代码的可读性、可维护性和复用性。这个压缩包包含了23种经典的Java设计模式的标准源代码,以及一本设计模式的帮助手册,便于...

    java设计模式

    11. **桥梁模式 (Bridge Pattern)** - **定义**:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 12. **命令模式 (Command Pattern)** - **定义**:将一个请求封装为一个对象,从而使你可用不同的请求...

    Java的23种设计模式

    桥梁模式(BRIDGE) **定义**:桥梁模式将抽象部分与其实现部分分离,使得两者可以独立变化。 **例子**:面对不同的场景,比如早上和晚上的问候,或是对女孩新衣服或新发型的赞美,你都可以使用相同的框架来组织...

    23种JAVA设计模式和15种J2EE设计模式

    Bridge 桥梁模式 桥梁模式将抽象与其实现分离,使得它们可以独立变化。例如,在与MM的日常交往中,无论是早上还是晚上,无论对方是穿着新衣服还是换了新发型,都可以灵活地表达赞美,而无需每次都调整自己的表达...

    java设计的4种模式

    在Java中,如果一个类的继承层次过于复杂,或者为了提高代码的灵活性和可扩展性,可以考虑使用桥梁模式。抽象化角色(Abstraction)定义了接口,实现化角色(Implementor)提供了基础实现,修正抽象化角色...

    java 的23种设计模式

    7. **桥梁模式(Bridge)**:桥梁模式分离了抽象和实现,使得两者可以独立变化。比如,你可以根据不同场合和MM的着装改变问候方式,通过组合实现不同的表达。 8. **合成模式(Composite)**:合成模式将简单对象和...

    从追MM谈Java的23种设计模式

    BRIDGE(桥梁模式) 桥梁模式用来解耦接口与其实现部分,使得它们可以独立变化。 **应用场景:** 在日常生活中,遇到不同的情境时需要说不同的话。例如,早上见面时说“早上好”,晚上见面时说“晚上好”。对于...

Global site tag (gtag.js) - Google Analytics