`
DanielHan
  • 浏览: 56833 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
074641d7-eb86-343f-a745-65a0f693edb5
设计模式
浏览量:7335
社区版块
存档分类
最新评论

设计模式-桥接模式

阅读更多
桥接模式(Bridge pattern)
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。

抽象化
存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待。

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

脱耦
所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。
将两个角色之间的继承关系改为聚合关系,就是将它们之间的强关联改换成为弱关联。因此,桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。这就是桥梁模式的用意。


public interface ILight {
	public void lightOn();
}


白炽灯
public class IncandescentLight implements ILight{
	@Override
	public void lightOn() {
		System.out.println("白炽灯亮了...");
	}
}


水晶灯
public class CrystalLight implements ILight{
	@Override
	public void lightOn() {
		System.out.println("水晶灯亮了...");
	}
}


普通开关
public class Switch {
	private ILight light;
	
	public Switch(ILight light){
		this.light=light;
	}
	
	public void switchOn(){
		this.light.lightOn();
	}
}


遥控开关
public class RemoteSwitch extends Switch{
	public RemoteSwitch(ILight light) {
		super(light);
	}
}


测试
public class Demo {
	public static void main(String[] args) {
		CrystalLight crystalLight=new CrystalLight();
		System.out.println("--普通开关--");
		Switch switch1=new Switch(crystalLight);
		switch1.switchOn();
		System.out.println("--遥控开关--");
		RemoteSwitch remoteSwitch=new RemoteSwitch(crystalLight);
		remoteSwitch.switchOn();
	}
}
分享到:
评论

相关推荐

    设计模式 - 桥接模式

    桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。这种模式在软件工程中被广泛应用于处理组件之间的耦合问题,使得系统具有更好的可扩展性和灵活性。 桥接模式的主要组成部分...

    设计模式---桥接模式

    桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。这种模式在软件工程中被广泛应用于处理组件之间的耦合问题,特别是当需要为同一抽象提供多种实现或者需要独立地改变它们时。 ...

    JAVA-设计模式-结构型模式-桥接模式

    JAVA-设计模式-结构型模式-桥接模式

    c++设计模式-结构型模式-桥接模式

    c++设计模式-结构型模式-桥接模式;qt工程,c++简单源码; 桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度...

    java常用设计模式-桥接模式

    Java 桥接模式 设计模式 桥接模式(Bridge Pattern)是一种常用的设计模式,它将抽象化和实现化解耦,使用封装、聚合以及继承等基本技术,将两个独立变化的维度通过抽象化的方式进行桥接,从而降低了它们之间的耦合...

    java设计模式-桥接模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...

    24设计模式-桥接模式1

    桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地进行变化。在软件工程中,这种模式对于处理有多种实现方式的抽象概念非常有用,可以降低系统的耦合度,提高模块间的独立性,使得代码更...

    设计模式-桥接模式(讲解及其实现代码)

    桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。这种模式在软件设计中常用于降低系统的耦合度,使得类的扩展和维护更为方便。 首先,我们理解桥接模式的核心概念。在桥接模式...

    设计模式 - 桥接模式(C++实例)

    桥接模式是一种结构型设计模式,它将抽象部分与其实现部分分离,使得它们可以独立地进行变化。在C++编程中,桥接模式能够帮助我们设计出更灵活、可扩展的系统,允许我们在不修改原有代码的基础上更换或增加新的实现...

    设计模式学习--桥接模式.md

    设计模式学习--桥接模式,安装了md就可以直接打开查看

    cpp代码-设计模式-桥接模式

    桥接模式是一种设计模式,它将抽象部分与实现部分分离,使得它们可以独立进行变化。在软件工程中,这种模式对于处理系统中不同类别的组件组合时的复杂性非常有用。桥接模式的核心思想是“抽象化”与“实现化”解耦,...

    设计模式的桥接模式的例子

    桥接模式是设计模式中的一种结构型模式,它旨在将抽象部分与实现部分解耦,使得它们可以独立地变化。这种模式将抽象类和它的实现类进行分离,通过一个抽象接口来连接它们,使得两者可以独立发展,增加了系统的灵活性...

    设计模式专题之(十)桥接模式---设计模式桥接模式示例代码(python--c++)

    桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。这种模式在软件设计中常用于降低复杂性,特别是在系统中存在多种可变因素时,通过解耦抽象和实现,可以使得两者各自独立发展,...

    c#代码介绍23种设计模式-08桥接模式(附代码)

    以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现, 其他具体电视品牌的遥控器...

    设计模式之桥接模式,内含可运行代码

    桥接模式是软件设计模式中的一种结构型模式,它的主要目的是为了实现抽象和实现的解耦,使得两者可以独立地进行扩展。在桥接模式中,抽象类(Abstraction)不直接引用具体实现(Implementation),而是通过一个桥接...

    设计模式11桥接模式

    ### 设计模式11桥接模式 #### 模式动机 桥接模式是解决系统中存在多维度变化问题的一种有效手段。例如,在图形绘制场景中,假设需要绘制不同形状(如矩形、圆形、椭圆、正方形)并赋予它们不同的颜色(如红色、...

    设计模式-Java语言中的应用

    设计模式通常分为三类:创建型模式(如工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式),结构型模式(如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式、享元模式)以及行为型模式(如...

    设计模式之桥接模式

    桥接模式(Bridge Pattern)是设计模式中结构型模式的一种,它的主要目的是将抽象部分与实现部分解耦,使得它们可以独立地进行变化。在Java编程中,这种模式的应用可以帮助我们构建更加灵活、可扩展的代码结构。 ...

Global site tag (gtag.js) - Google Analytics