`
clq9761
  • 浏览: 590965 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

桥接模式

 
阅读更多

桥接模式:将抽象部分与他的实现部分分离,使它们都可以独立地变化。
               这里的实现指的是抽象类和它的派生类用来实现自己的对象。


1.实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,
  减少它们之间的藕合。


2.在桥接模式中的桥接是单向的,也就是只能是抽象部分的对象去使用具体实现部分的对象,
  而不能反过来,也就是个单向桥。


3.桥接模式使得抽象和实现可以独立变化,都可以分别扩充。也就是说抽象部分和实现部分是一种非常松散的关系。


4.桥接模式主要是把继承改成了使用对象组合,从而把两个纬度分开,让每一个纬度单独去变化,
  最后通过对象组合的方式,把两个纬度组合起来,每一种组合的方式就相当于原来继承中的一种实现,
 这样就有效的减少了实际实现的类的个数。

/**
 * 实现部分的抽象类
 */
public abstract class Implementor {
	
	public abstract void operation();

}

 

/**
 *实现部分的具体实现类A
 */
public class ConcreteImplementorA extends Implementor{

	@Override
	public void operation() {
		System.out.println("具体实现A的方法执行");
	}

}

 

/**
 *实现部分的具体实现类B
 */
public class ConcreteImplementorB extends Implementor{

	@Override
	public void operation() {
		System.out.println("具体实现B的方法执行");
	}

}

 

/**
 * 抽象部分的类
 */
public class Abstration {
	
	// 具体实现部分的对象
	protected  Implementor implementor;
	
	public void setImplementor(Implementor implementor){
		this.implementor = implementor;
	}	
	public void operation(){
		implementor.operation();
	}
}

 

/**
 * 抽象部分的具体实现类
 */
public class RefinedAbstration extends Abstration{

	@Override
	public void operation() {
		implementor.operation();
	}
}

 

	public static void main(String[] args) {
		
		// 抽象部分
		Abstration ab = new RefinedAbstration();
		// 具体实现类A
		ab.setImplementor(new ConcreteImplementorA());
		ab.operation();
		// 具体实现类B
		ab.setImplementor(new ConcreteImplementorB());
		ab.operation();

	}

 

 

桥接模式实例:(手机品牌软件)

 

 

/**
 * 手机软件
 */
public abstract class HandsetSoft {
	public abstract void run();
}

 

/**
 * 手机游戏
 */
public class HandsetGame extends HandsetSoft{

	@Override
	public void run() {
		System.out.println("运行手机游戏");
	}
}

 

/**
 * 手机通讯录
 */
public class HandsetAddressList extends HandsetSoft{

	@Override
	public void run() {
		System.out.println("运行手机通讯录");
	}
}

 

/**
 * 手机品牌
 */
public abstract class HandsetBrand {
	
	protected HandsetSoft soft;
	
	// 设置手机软件
	public void setHandsetSoft(HandsetSoft soft){
		this.soft = soft;
	}
	// 运行
	public abstract void run();
}

 

/**
 * 手机品牌M
 */
public  class HandsetBrandM extends HandsetBrand{
	@Override
	public void run() {
		soft.run();
	}
}

 

/**
 * 手机品牌N
 */
public  class HandsetBrandN extends HandsetBrand{
	@Override
	public void run() {
		soft.run();
	}
}

 

public class Main {

	public static void main(String[] args) {
		
		HandsetBrand ab ;
		// 手机品牌N
		ab = new HandsetBrandN();
		ab.setHandsetSoft(new HandsetGame());
		ab.run();
		ab.setHandsetSoft(new HandsetAddressList());
		ab.run();
		// 手机品牌M
		ab = new HandsetBrandM();
		ab.setHandsetSoft(new HandsetGame());
		ab.run();
		ab.setHandsetSoft(new HandsetAddressList());
		ab.run();
	}
}

 

 

运行结果如下:

 

运行手机游戏
运行手机通讯录
运行手机游戏
运行手机通讯录

 

  • 大小: 34.1 KB
  • 大小: 16.4 KB
分享到:
评论

相关推荐

    桥接模式和策略模式的区别,内含可运行代码和两者详细区别

    桥接模式和策略模式是软件设计模式中的两种重要模式,它们在实现上有着相似之处,但各自的应用场景和设计理念有所不同。下面将详细阐述这两种模式的特点、区别以及它们在实际编程中的应用。 首先,桥接模式(Bridge...

    Bridge 桥接模式(结构型模式)

    桥接模式(Bridge Pattern)是一种结构型设计模式,它的主要目的是将抽象部分与实现部分分离,使得它们可以独立地进行变化。在软件工程中,这种分离有助于降低复杂性,提高代码的可维护性和可扩展性。桥接模式的核心...

    设计模式---桥接模式

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

    VMWare 6.0桥接模式虚拟机网络配置

    VMWare 6.0 桥接模式虚拟机网络配置 VMWare 6.0 桥接模式虚拟机网络配置是虚拟机网络配置中的一种简单而又重要的网络连接模式。通过以下步骤可以设置桥接模式虚拟机网络配置:首先,确保在相应虚拟机的以太网设置...

    VMware15虚拟机桥接模式无法上网问题的解决

    VMware 15虚拟机桥接模式无法上网问题 步骤 1:在设置中找到 网络和internet—>>更改适配器选项—–>>以太网 查看 共享网络给虚拟机(有些电脑不用) 步骤2:查看VMware虚拟网络编辑器的VMnet0桥接模式设置 ...

    桥接模式 C++ 实现

    桥接模式是一种设计模式,它将抽象部分与实现部分分离,使得它们可以独立进行变化。在C++中,桥接模式的应用有助于降低系统的耦合度,提高代码的可扩展性和可维护性。以下是对桥接模式及其C++实现的详细解释。 首先...

    Vmware Ubuntu虚拟机桥接模式的使能

    "Vmware Ubuntu虚拟机桥接模式的使能" Vmware Ubuntu虚拟机桥接模式的使能是指在Vmware Workstation虚拟机中,使用桥接模式将虚拟机的网络连接到宿主机的物理网络上,从而使虚拟机可以直接访问外部网络和宿主机网络...

    设计模式之桥接模式BridgePattern

    桥接模式(Bridge Pattern)是设计模式中的一种结构型模式,它主要解决的是在软件设计中,当抽象和实现之间存在紧密耦合时,如何使这两者能够独立地变化。这种模式通过引入一个抽象层来分离接口和实现,使得它们可以...

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

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

    Android桥接模式demo

    **Android桥接模式详解** 桥接模式是一种设计模式,它将抽象部分与实现部分分离,使得它们可以独立地进行变化。在Android开发中,尤其是在构建可扩展和灵活的架构时,这种模式尤其有用。本文将深入探讨桥接模式在...

    桥接模式-设计模式

    桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。这种模式在软件设计中扮演着重要的角色,尤其是在面对需求频繁变动或系统需要支持多平台、多设备的情况下。 首先,我们要理解...

    设计模式 - 桥接模式

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

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

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

    ADSL桥接模式和路由模式的区别

    "ADSL 桥接模式和路由模式的区别" 在 ADSL 宽带接入方式中,桥接模式和路由模式是两种常见的工作模式。_bridge 模式是 ADSL ROUTER 的默认工作模式,主要用于单台电脑的接入,需要代理服务器或网关设备将局域网中的...

    C#面向对象设计模式纵横谈(8):Bridge 桥接模式(结构型模式)

    桥接模式(Bridge Pattern)是面向对象设计中的一种结构型模式,它将抽象部分与实现部分分离,使得它们可以独立地进行变化。在C#编程中,桥接模式的应用能够帮助我们更好地解耦系统,提高代码的灵活性和可扩展性。 ...

    设计模式之桥接模式

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

    桥接模式例子源码

    桥接模式是一种设计模式,属于结构型模式,其主要目的是将抽象部分与实现部分分离,使得它们可以独立地进行变化。这种模式通过引入一个抽象化角色来实现抽象部分与实现部分的解耦,使得这两部分可以独立扩展。在这个...

    结构型模式之桥接模式(bridge)

    桥接模式是设计模式中的一种结构型模式,其主要目的是为了分离抽象部分和实现部分,以便两者能够独立地进行变化。这种模式的核心理念是通过引入一个抽象层来封装多种可能的实现,使得抽象和实现之间形成一种“桥接”...

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

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

    C#面向对象设计模式纵横谈(8):Bridge 桥接模式(结构型模式) (Level 300)

    桥接模式(Bridge Pattern)是一种结构型设计模式,它旨在将抽象部分与其实现部分分离,使得它们可以独立地进行变化。在C#编程中,这种模式尤其有用,因为随着软件系统的复杂性增加,类的继承层次可能会变得难以管理...

Global site tag (gtag.js) - Google Analytics