`
cljspn
  • 浏览: 47420 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式之Bridge模式

阅读更多

       这几天闲着没事,看一下Bridge模式。它是实现对象行为分离的。做一下小例子与大家分享:,希望能与大家交流。

现定义一个对数据对象操作的接口:

java 代码
  1. package org.mvc.webtier;   
  2.   
  3. public interface Operator {   
  4.  String work(String arg);   
  5. }   
  6.   
实现上边的这个接口:
java 代码
  1. package org.mvc.webtier;   
  2.   
  3. public class Insert implements Operator{   
  4.   
  5.  public String work(String arg) {   
  6.   // TODO Auto-generated method stub   
  7.      
  8.   return "insert "+arg;   
  9.  }   
  10.   
  11. }package org.mvc.webtier;   
  12.   
  13. public class Update implements Operator {   
  14.  public String work(String arg) {   
  15.   // TODO Auto-generated method stub   
  16.   
  17.   return "update " + arg;   
  18.  }   
  19. }   
  20.   

定义数据对象的抽象类:

java 代码
  1. package org.mvc.webtier;   
  2.   
  3. public abstract class Table {   
  4.  protected Operator impl = null;   
  5.   
  6.  public abstract void work();   
  7.   
  8.  public Operator getImpl() {   
  9.   return impl;   
  10.  }   
  11.   
  12.  public void setImpl(Operator impl) {   
  13.   this.impl = impl;   
  14.  }   
  15. }   
  16.   

具体的数据对象继承上面的这个抽象类:

 

java 代码
  1. package org.mvc.webtier;   
  2.   
  3. public class Table1 extends Table{   
  4.   
  5.  @Override  
  6.  public void work() {   
  7.   // TODO Auto-generated method stub   
  8.   System.out.println(this.impl.work("Table1"));   
  9.  }   
  10.   
  11. }   
  12.   
  13. package org.mvc.webtier;   
  14.   
  15. public class Table2 extends Table{   
  16.   
  17.  @Override  
  18.  public void work() {   
  19.   // TODO Auto-generated method stub   
  20.   System.out.println(this.impl.work("Table2"));   
  21.  }   
  22.   
  23. }   
  24.   

根据具体的业务就可以对具体的数据对象进行操作了。

java 代码
  1. Table tbl1 = new Table1();   
  2.   tbl1.setImpl(new Insert());   
  3.   tbl1.work();   
  4.   tbl1.setImpl(new Update());   
  5.   tbl1.work();   
  6.      
  7.   
  8. Table tbl2 = new Table2();   
  9.   tbl2.setImpl(new Update());   
  10.   tbl2.work();   
  11.   tbl2.setImpl(new Insert());   
  12.   tbl2.work();   
  13.   

 

分享到:
评论
1 楼 piaochunzhi 2007-11-14  
感觉 和 策略 相似呢,这些模式好晕

相关推荐

    JAVA设计模式chm文档

    设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template 设计模式之Memento(备忘机制) 设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计...

    设计模式之美—学习笔记

    在这个“设计模式之美”的学习笔记中,我们将探讨一些主要的设计模式,以及它们在实际开发中的应用。 首先,我们从创建型模式开始。这类模式主要用于对象的创建,如单例模式(Singleton)、工厂模式(Factory ...

    java设计模式之Bridge.pdf

    总结来说,Bridge模式是一种有效应对多维度分类问题的设计模式,它通过分离抽象和实现,降低了类之间的耦合度,提高了系统的可扩展性和可维护性。在Java中,Bridge模式常用于需要灵活组合不同行为和抽象的场景,例如...

    java设计模式之Bridge.docx

    Java设计模式中的Bridge模式是一种结构型设计模式,其主要目的是将抽象部分与其实现部分分离,使得两者可以独立地进行变化。在Bridge模式中,抽象类(或接口)不直接包含实现,而是通过一个引用(或接口)指向实现类...

    设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式

    设计模式之我见(1):设计模式概述 (100%) 设计模式面面观(2):设计模式基本要素与原则 (100%) 设计模式面面观(3):单件模式(Singletion)-创建型模式 (100%) 设计模式面面观(4):工厂模式...

    Java设计模式之禅

    《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...

    设计模式之桥接模式BridgePattern

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

    设计模式文档 chm

    设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template 设计模式之Memento(备忘机制) 设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计...

    人人都懂设计模式 人人都懂设计模式

    人人都懂设计模式 设计模式是软件开发中的一种解决方案,它提供了一种通用的设计思想和方法论,可以帮助开发者更好地设计和实现软件系统。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 在本书中...

    c++-设计模式之桥接模式(Bridge Pattern)

    桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使得两者可以独立地变化。这种模式常用于需要在多个维度上变化的场景,比如不同的形状和颜色,允许在不改变客户端代码的情况下增加新...

    24种设计模式以及混合设计模式

    设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而形成的一套最佳实践。在本文中,我们将深入探讨24种设计模式,并结合混合设计模式的概念,以及它们在实际项目中的应用案例。 首先,设计...

    软件设计模式 bridge模式 代理模式等

    软件设计模式,共包含二十多种模式,做IT的必备知识呀!

    设计模式Bridge学习

    针对设计模式中的 bridge 模式,做了一个小例子,希望对设计模式研究的朋友有所帮助。

    设计模式C++学习之桥梁模式(Bridge)

    **桥梁模式(Bridge)**是一种结构型设计模式,它的主要目的是将抽象部分与其实现部分解耦,使得它们可以独立地进行变化。在C++编程中,这种模式尤其有用,因为它允许我们创建灵活且可扩展的系统,同时保持代码的低...

    JavaScript设计模式与开发实践.pdf

    第二部分是核心部分,通过一步步完善的代码示例,由浅入深地讲解了16个设计模式,包括 singleton模式、Factory模式、Abstract Factory模式、Builder模式、Prototype模式、Adapter模式、Bridge模式、Composite模式、...

    GoF 23种设计模式的详解与应用

    结构模式:设计模式之Facade(外观),设计模式之Proxy(代理),设计模式之Adapter(适配器),设计模式之Composite(组合),设计模式之Decorator(油漆工),设计模式之Bridge,设计模式之Flyweight(享元). 行为模式:设计模式之...

    23种设计模式整理pdf

    设计模式详解 设计模式是软件开发中的一种解决方案,旨在提高代码的可重用性、可维护性和可扩展性。在这篇文章中,我们将对23种常见的设计模式进行整理和解释。 1. Singleton 模式 Singleton 模式是一种创建型模式...

    23种面向对象设计模式

    文档中的“23种设计模式学习笔记.doc”可能包含了对这23种模式的详细解释和实例,而“设计模式之我爱我家.doc”可能从一个更生活化的角度来阐述设计模式的概念。“软件23种设计模式,超级经典的.pdf”可能是对这些...

    设计模式那点事

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的可重用解决方案。《设计模式那点事》这本书的PPT为我们提供了一种深入理解和学习设计模式的途径。在这里,我们将深入探讨设计模式的核心概念、...

Global site tag (gtag.js) - Google Analytics