`

7、桥梁模式

 
阅读更多



 桥梁模式(bridge pattern)

1、桥梁模式

桥梁模式的用意是“使抽象化和实现化解耦,使得两者可以独立的变化”。

 

抽象化

存在于多个实例之间共同的概念性联系,就是抽象化。

 

实现化

抽象化给出的具体实现就是实现化。

 

解耦

所谓耦合就是两个实体之间的某种强关联,将他们之间的强关联去掉就是解耦,一般情况下通过聚合代替继承实现解耦。

 

 2、结构图

 

 在abstraction中包含implement变量实现两个类之间的聚合关系,降低两个类之间的耦合。

 

3、代码

 在java面向对象编程中接口是解耦的做好办法

Abstraction接口

/**
 * 抽象类接口
 * @author qiang
 *
 */
public interface Abstraction {
	
	public void operate();

}

 

 Implement接口

/**
 * 实现操作接口
 * @author qiang
 *
 */
public interface Implement {
	
	public void operate();

}

 

Abstraction实现类

public class ConcreteAbstraction implements Abstraction {
	
	private Implement imp;
	
	public ConcreteAbstraction(Implement imp) {
		super();
		this.imp = imp;
	}

	@Override
	public void operate() {
		imp.operate();
	}

}

 

Implement实现类

public class ConcreteImplement implements Implement {

	@Override
	public void operate() {
		System.out.println("do something....");
	}

}

 

 

客户端调用类

public class Client {
	
	public static void main(String[] args) {
		Implement imp = new ConcreteImplement();
		Abstraction abs = new ConcreteAbstraction(imp);
		abs.operate();
	}

}

 

  • 大小: 6.7 KB
分享到:
评论

相关推荐

    java设计模式

    33.1.2 桥梁模式实现邮件发送 33.1.3 最佳实践 33.2 门面模式VS中介者模式 33.2.1 中介者模式实现工资计算 33.2.2 门面模式实现工资计算 33.2.3 最佳实践 33.3 包装模式群PK 33.3.1 代理模式 33.3.2 装饰模式 33.3.3...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合模式COMPOSITE PATTERN 16、观察者模式OBSERVER PATTERN 17、责任链模式 18、...

    【Java设计模式】《设计模式之禅》中的23种设计模式.zip

    【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之...23. 桥梁模式

    JavaScript设计模式.pdf

    桥梁模式是将抽象部分与实现部分分离,使他们可以独立地变化。它的主要作用是降低耦合度,提高代码的灵活性和可扩展性。 4. 装饰者模式(Decorator Pattern): 装饰者模式是动态地给一个对象添加一些额外的职责。...

    浅析23种软件设计模式

    7. 桥梁模式:桥梁模式的主要思想是将抽象化与实现化脱耦,使得二者可以独立的变化。这种模式的优点是可以使系统更加灵活和可扩展,但缺点是增加了系统的复杂度。 8. 合成模式:合成模式的主要思想是将对象组织到树...

    纯UEFI模式安装引导win7必须替换的文件bootmgfw.efi

    然而,对于较旧的操作系统如Windows 7,它们可能并未设计为直接在纯UEFI模式下启动。在这种情况下,我们需要进行一些额外的配置和文件替换来实现UEFI模式下的安装引导。本文将详细讲解如何使用原版Win8的EFI引导文件...

    设计模式_行为模式

    7. 观察者模式(Observer):观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。它广泛应用于事件驱动编程和发布/订阅模型。 8. 状态模式(State...

    桥梁跨越的极限-word资料.pdf

    这些数据可以用来分析桥梁技术的进步,例如,从1883年的布鲁克林大桥(487.7米)到1937年的金门大桥(1280.2米),跨度的显著增加反映了桥梁工程设计和施工技术的巨大进步。 在IT的支持下,这些历史数据可以与现代...

    基于设计模式的画图程序

    至少在其中运用 3 种模式,其中涉及到的模式有装饰模式、策略模式、桥梁模式三种。 1.2 画图基本要求 能实现基本图形的绘制功能 1.3 画图高级要求 实现图形的操作(如选取、移动、放大、缩小、改变颜色、改变线形等...

    IBM内部培训资料,设计模式讲解

    7. **桥梁模式**: 桥梁模式也是结构型设计模式,它将抽象部分与其实现部分分离,使它们可以独立变化。在Java中,桥梁模式可以用来解耦抽象类和其具体的实现,使得两者可以独立地进行扩展。 8. **组合模式**: ...

    编程的23种设计模式(mm设计模式,形象易懂)

    7. **桥梁模式**:比如根据不同情境向MM问候,桥梁模式将抽象部分与实现部分分离,使得两者可以独立变化,增强了灵活性。 8. **合成模式**:如同mm挑选的t恤、裙子和包包组成一套礼物,合成模式用于构建部分-整体...

    设计模式与泡MM——设计模式入门教程

    ##### 7、BRIDGE(桥梁模式) 桥梁模式将抽象与其实现分离,使得两者可以独立变化。 **例子**:对于不同时间点遇到的MM,你可以灵活地使用桥梁模式来组织你的赞美语言。例如,早上遇见新做了发型的MM,可以说:...

    Java中23种设计模式详解

    桥梁模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。这种模式使得抽象和实现可以独立地演化。 4. 建造模式(Builder) 建造模式将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的...

    《桥梁工程施工》说课讲稿.pdf

    - 教学模式注重能力培养和职业素质训导,并重。 4. 课程内容与要求 - 学习情境包括桥梁施工准备、桥梁基础施工、桥梁墩台施工、梁桥施工、拱桥施工、斜拉桥施工等。 - 每个学习情境都有具体的知识、能力、素质要求...

    设计模式个人整理设计模式个人整理

    桥梁模式分离抽象和实现,使得两者可以独立变化。比如,根据不同情境组合问候语(早上好、晚上好、赞美语句),桥接模式允许你独立地改变这些元素。 9. **合成模式**: 合成模式用于描述部分与整体的关系,如购买...

    设计模式学习笔记总结

    这里我们聚焦于C#语言中的设计模式学习笔记,涵盖了多种经典的设计模式,如合成模式、桥梁模式、装饰模式、享元模式、门面模式、命令模式、工厂方法、策略模式、代理模式以及状态模式。下面将对这些模式逐一进行详细...

    23种设计模式趣味讲解

    7. **桥梁模式**: 桥梁模式将抽象部分与实现部分分离,使得它们可以独立变化。它通过将抽象和实现解耦,使得它们可以独立地进行扩展。 8. **合成模式**: 合成模式将对象组织成树形结构,表示部分-整体的关系。...

    您的设计模式

    桥梁模式将抽象部分与实现部分分离,使它们都可以独立地变化。它通过提供抽象化和实现化之间的桥梁来达到这个目的。 12. 命令模式(Command Pattern) 命令模式将请求封装为具有统一接口的对象,从而使你可用不同...

    JAVA常用设计模式详解大全.doc

    7. 桥梁模式(Bridge Pattern) 桥梁模式是一种结构模式,提供了一种将对象的抽象和实现分离的方式,使得对象的抽象和实现可以独立变化。桥梁模式的优点是可以实现对象的灵活性和可维护性。 8. 合成模式...

    revit+dynamo公路桥梁建模案例课件.rar

    7. **案例分析**:通过具体的公路桥梁建模案例,学习如何从概念设计到详细模型的创建,包括地形处理、桥墩定位、桥面布置等。 8. **Dynamo脚本编写**:掌握编写Dynamo脚本的技巧,包括如何创建和编辑节点,定义输入...

Global site tag (gtag.js) - Google Analytics