`
java苹果+番茄
  • 浏览: 67976 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

桥梁(Bridge)模式【结构模式第五篇】

阅读更多
桥梁(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#设计模式.PDF

    桥梁(Bridge)模式 - **定义**:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 - **结构**:包括抽象类、实现者类、扩展抽象类和具体实现者类。 - **优点**:提高了系统的可扩展性,实现了抽象和实现...

    C#23种设计模式_示例源代码及PDF

    桥梁模式:将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关 桥梁模式 联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是 继承关系,从而使两者可以独立的...

    java设计模式(电子书)

    第5章工厂方法模式(FACTORY METHOD PATTERN):定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 第6章抽象工厂模式(ABSTRACT FACTORY PATTERN):提供一个创建一...

    24种java设计模式介绍与6大设计原则

    #### 第5章 工厂方法模式(Factory Method Pattern) 工厂方法模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。 ##### 描述 工厂方法模式通过定义一个创建对象的接口,但让子类决定实例化哪一个类。...

    24种设计模式介绍与6大设计原则

    **桥梁模式(Bridge Pattern)** - **定义**:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 - **应用场景**:当一个类存在两个独立变化的维度时。 - **实例**:在设备驱动程序的设计中,可以通过...

    《JAVA设计模式》期末考试复习资料.docx

    16. **桥梁模式(Bridge Pattern)**:桥梁模式将抽象部分与实现部分分离,使它们可以独立变化,提高了系统的灵活性和可扩展性。 17. **建造者模式**:定义一个创建对象的接口,让子类决定实例化哪一个类,使得构建...

    java设计模式详细解说

    #### 第5章:工厂方法模式【FACTORY METHOD PATTERN】 **定义与作用:** 工厂方法模式定义了一个用于创建对象的接口,但让子类决定实例化哪一个类。该模式使得一个类的实例化延迟到其子类。 **实现原理:** - 创建...

    Moto K1驱动程序

    Moto K1驱动程序是专为摩托罗拉Moto K1智能手机设计的重要软件组件,它在设备与计算机之间建立通信桥梁,确保数据同步、刷机、故障排查等操作的顺利进行。驱动程序是操作系统与硬件设备之间的接口,没有合适的驱动,...

    java面试800题

    结构模式 facade门面模式、proxy代理模式、adapter适配器(变压器)模式、composite合成模式、decorator装饰模式、bridge桥梁模式、flyweight享元模式 行为模式 template模板方法模式、memento备忘录模式、observer...

    超级有影响力霸气的Java面试题大全文档

    当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...

    windows下CAD-Java调用控件方法

    - 首先,确保你的Java环境支持JNI(Java Native Interface)和JACOB(Java COM Bridge),它们是Java调用COM组件的桥梁。 - 安装JACOB库,并在项目中引入对应的jar文件。 - 使用JACOB的`ActiveXComponent`类实例...

    34-002-T-九联unt401h-MV310强刷版本2 附刷机教程说明 当贝桌面纯净版

    5. **安全模式**:在某些情况下,设备可能需要进入安全模式来执行刷机或故障排查。 6. **命令行工具**:高级刷机过程可能涉及使用ADB(Android Debug Bridge)或其他命令行工具来传输和安装固件。 7. **文件系统**...

    platform-tools_r34.0.4-windows.zip

    这个版本号表示这是平台工具的第34.0.4次更新,针对Windows操作系统。在深入探讨其中的知识点之前,我们先来了解一下平台工具的基本组成。 平台工具主要包括以下组件: 1. **adb (Android Debug Bridge)**:这是一...

    安卓adb工具

    ADB(Android Debug Bridge)是Android开发者不可或缺的一个强大工具,它作为开发者与安卓设备之间的一座桥梁,允许用户通过命令行接口执行各种操作,包括安装和调试应用、传输文件、控制设备以及获取设备状态等。...

    android的adb工具

    ADB(Android Debug Bridge)是Android开发者不可或缺的一款命令行工具,它提供了与Android设备进行通信的桥梁。通过ADB,开发者可以进行一系列操作,包括安装和调试应用、查看设备状态、传输文件、运行shell命令等...

Global site tag (gtag.js) - Google Analytics