`
linbzh
  • 浏览: 71355 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

bridge桥接模式

阅读更多

      bridge桥接模式的目的和decorator装饰器模式是一样的,都是避免过多的子类,只是它们的实现的方法有所不同,桥接模式采用聚合的方式来实现。要对类的功能进行扩展,可以修改现有的代码来做,但是如果一个父类的n个子类都要该功能,那么就得修改n次,不但工作量大而且重复代码量很多。这也违反了面向对象的开放/封闭原则(对扩展来说是开放的,对修改来说是封闭的)。在前面的《decorator装饰器模式》中提到的“父类的n个子类的都要派生出子类并实现这些功能”,这种方来处理但然也是不合理的。
       bridge桥接模式中“将抽象化与实现化脱偶,使得二者可以独立地变化”的意思,就是利用聚合的方法对,在新类中对原接口进行封装,并实现特定的功能,用户只要向该新类传进原接口的一个子类的引用,对原接口对象进行实例化,用户就可以得到某些的应用。如果需要就对添加的类进行任何的改变,只要修改该新添加的类就行了。这就是独立地变化的体现。     

      在decorator装饰器模式中,如果原父类的方法较多,那么Decorator继承过来的函数也就会很多。使用桥接模式就不存在这种情况。也就是说如果只想对目的类的某个或几个方法,用桥接模式就行了,代码量比较少。如果想像原类的一样使用新类,就用装饰器模式,但是可能会带来不必要的麻烦。

public interface Info{      
   public String read();      
   public void save();      
   public void setStr(String str);      
   public String getStr();      
}      
public class FileInfo implements Info{      
   protect String str;      
   public void read(){/*...*/}      
   public void save(){/*...*/}      
   public void setStr(String str){this.str=str;}      
   public String getStr(){return str;}      
}      
public class NetInfo implements Info{      
   protect String str;      
   public void read(){/*...*/}      
   public void save(){/*...*/}      
   public void setStr(String str){this.str=str;}      
   public String getStr(){return str;}      
}      
public interface Bridge{      
   public void save();      
}      
public class XmlDocument implements Bridge{      
   private Info info;      
   public XmlDocument(Info info){this.info = info;}      
   public void save(){xml();info.save();}      
   public void xml(){String str=info.read();/*对str进行处理...*/info.setStr(str);}      
}      
public class EncrypDocument implements Bridge{      
   private Info info;      
   public EncrypDocument(Info info){this.info = info;}      
   public void save(){encryp();info.save();}      
   public void encryp(){String str=info.read();/*对str进行处理...*/info.setStr(str);}   

   
}      
public class Main{      
   public static void main(String args[]){      
      Info info = new NetInfo();      
      Bridge b = new XmlDocument(info);      
      b.save();      
   }      
} 

 

 

 

分享到:
评论

相关推荐

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

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

    Bridge 桥接模式

    C#面向对象设计模式 Bridge 桥接模式 视频讲座下载

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

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

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

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

    C#面向对象设计模式纵横谈\8 结构型模式Bridge桥接模式.zip

    在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源... 这是第8节:结构型模式Bridge桥接模式

    FW150RM无线路由器怎么设置Bridge桥接模式?

    Bridge桥接模式是一种网络连接方式,它允许两个或多个网络设备,如路由器或计算机,通过无线或有线连接共享同一网络,从而扩大网络覆盖范围。FW150RM无线路由器支持Bridge模式设置,使得它可以作为主路由器的延伸,...

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

    首先,桥接模式(Bridge Pattern)的核心思想是“分离抽象与实现”。它通过建立一个抽象层和一个实现层的独立继承体系,使得抽象部分和实现部分可以独立变化,形成一种解耦的设计。在桥接模式中,抽象类引用实现类的...

    C++设计模式编程中使用Bridge桥接模式的完全攻略

    桥接模式(Bridge Pattern)是一种设计模式,它旨在将抽象部分和其实现部分分离,使得这两部分可以独立地进行变化。在C++编程中,桥接模式能够帮助开发者更好地管理和扩展复杂的类结构,减少类之间的耦合度。下面将...

    设计模式之桥接模式BridgePattern

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

    设计模式---桥接模式

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

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

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

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

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

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

    在桥接模式中,抽象类(Abstraction)不直接引用具体实现(Implementation),而是通过一个桥接类(Bridge)来引用,这样抽象部分与实现部分可以独立变化,提供了更大的灵活性。 首先,我们来看一下桥接模式的基本...

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

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

    设计模式之桥接模式

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

    桥接模式java示例代码

    在刘伟老师的《设计模式》一书中,`Chapter 11 Bridge`章节的示例代码会进一步展示如何在实际场景中应用桥接模式,通过实例帮助读者理解和掌握这种模式的精髓。通过阅读和实践这些代码,你可以更好地理解桥接模式...

    桥接模式代码示例

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

    Bridge 桥接

    桥接模式(Bridge Pattern)是一种结构型设计模式,它的主要目的是将抽象部分与实现部分分离,使得它们可以独立地进行变化。在这个例子中,我们将会深入探讨桥接模式的概念、结构以及它在实际开发中的应用。 桥接...

Global site tag (gtag.js) - Google Analytics