- 浏览: 216728 次
- 性别:
- 来自: 北京
文章分类
如果有很多对象要处理,而又有很多操作要做。这时可以考虑使用桥梁的设计模式,将对象与操作相互分离,都做抽象,然后分别由实现类进行组合。完成所需要的要求。
下面的实例引用自
http://wenku.baidu.com/view/2911fc4f2e3f5727a5e9622e.html
现在我们有很多表要处理,同时又有很多操作要做。最简单的做法是在一个类里做完所有的操作,如我们在EJB服务器端的实现中进行JDBC操作。可是这样一来这个类将无比巨大,大到四只眼(眼睛兄)都看不过来!有什么好办法能够降低这样操作的杂乱性呢?我们注意到这里有两个概念,分别是“表单(Table)”和“操作(Operator)”。也就是说这里有两个部分——“抽象”和“实现”。我们将这两个部分进行分离,然后根据需要,分别继承和实现表单和操作。这样我们就可以方便地通过表单和操作的组合来实现我们的工作了。
操作如:
java 代码
Table tbl1 = new Table1(new Insert());
tbl1.work();
Table tbl2 = new Table2(new Update());
tbl2.work();
Table1和Table2都是Table的子类,他们都映射到数据库中特定的表。Insert和Update都是接口Operator的实现,分别完成特定的数据库操作。好了,下面来先看看Operator的实现代码。
java 代码
public interface Operator {
/**
* 操作
*
* @param arg 传入的参数
* @return 操作结果
*/
String work(String arg);
}
我们需要能对数据库进行插入和修改操作,因此分别建立Insert和Update类。
java 代码
// 插入操作
public class Insert implements Operator {
public String work(String arg) {
String rs = "insert " + arg;
return rs;
}
}
java 代码
// 修改操作
public class Update implements Operator {
public String work(String arg) {
String rs = "update " + arg;
return rs;
}
}
好了,我们再来看看抽象部分的实现。这里我们的对象是Table。
java 代码
public abstract class Table {
// 内置一个操作接口
protected Operator impl = null;
public Table(Operator impl) {
this.impl = impl;
}
/**
* 由子类来具体实现此操作
*/
public abstract void work();
}
现在我们有两个表单需要进行操作,他们分别是Table1和Table2。
java 代码
public class Table1 extends Table {
public Table1(Operator impl) {
super(impl);
}
public void work() {
System.out.println(this.impl.work("Table1"));
}
}
java 代码
public class Table2 extends Table {
public Table2(Operator impl) {
super(impl);
}
public void work() {
System.out.println(this.impl.work("Table2"));
}
}
这样我们在进行数据库的操作的时候,便可以随意地根据实际情况进行表单与操作的组合,将表单与操作桥接在一起来完成我们的任务。
java 代码
// 对table1进行插入操作
Table tbl1 = new Table1(new Insert());
tbl1.work();
// 对table2进行修改操作
Table tbl2 = new Table2(new Update());
tbl2.work();
Bridge设计模式感觉上是通过将对象与操作进行分离,然后对这两个基本概念进行继承及实现,通过对对象及操作的各种组合来完成相应的工作。
下面的实例引用自
http://wenku.baidu.com/view/2911fc4f2e3f5727a5e9622e.html
现在我们有很多表要处理,同时又有很多操作要做。最简单的做法是在一个类里做完所有的操作,如我们在EJB服务器端的实现中进行JDBC操作。可是这样一来这个类将无比巨大,大到四只眼(眼睛兄)都看不过来!有什么好办法能够降低这样操作的杂乱性呢?我们注意到这里有两个概念,分别是“表单(Table)”和“操作(Operator)”。也就是说这里有两个部分——“抽象”和“实现”。我们将这两个部分进行分离,然后根据需要,分别继承和实现表单和操作。这样我们就可以方便地通过表单和操作的组合来实现我们的工作了。
操作如:
java 代码
Table tbl1 = new Table1(new Insert());
tbl1.work();
Table tbl2 = new Table2(new Update());
tbl2.work();
Table1和Table2都是Table的子类,他们都映射到数据库中特定的表。Insert和Update都是接口Operator的实现,分别完成特定的数据库操作。好了,下面来先看看Operator的实现代码。
java 代码
public interface Operator {
/**
* 操作
*
* @param arg 传入的参数
* @return 操作结果
*/
String work(String arg);
}
我们需要能对数据库进行插入和修改操作,因此分别建立Insert和Update类。
java 代码
// 插入操作
public class Insert implements Operator {
public String work(String arg) {
String rs = "insert " + arg;
return rs;
}
}
java 代码
// 修改操作
public class Update implements Operator {
public String work(String arg) {
String rs = "update " + arg;
return rs;
}
}
好了,我们再来看看抽象部分的实现。这里我们的对象是Table。
java 代码
public abstract class Table {
// 内置一个操作接口
protected Operator impl = null;
public Table(Operator impl) {
this.impl = impl;
}
/**
* 由子类来具体实现此操作
*/
public abstract void work();
}
现在我们有两个表单需要进行操作,他们分别是Table1和Table2。
java 代码
public class Table1 extends Table {
public Table1(Operator impl) {
super(impl);
}
public void work() {
System.out.println(this.impl.work("Table1"));
}
}
java 代码
public class Table2 extends Table {
public Table2(Operator impl) {
super(impl);
}
public void work() {
System.out.println(this.impl.work("Table2"));
}
}
这样我们在进行数据库的操作的时候,便可以随意地根据实际情况进行表单与操作的组合,将表单与操作桥接在一起来完成我们的任务。
java 代码
// 对table1进行插入操作
Table tbl1 = new Table1(new Insert());
tbl1.work();
// 对table2进行修改操作
Table tbl2 = new Table2(new Update());
tbl2.work();
Bridge设计模式感觉上是通过将对象与操作进行分离,然后对这两个基本概念进行继承及实现,通过对对象及操作的各种组合来完成相应的工作。
发表评论
-
多种单例模式的分析
2012-03-28 18:06 0blog.csdn.net/derpvailzhangfan/ ... -
JDK中的设计模式
2012-03-14 22:56 01.Abstract Factory •java.util.C ... -
简单工厂模式使用心得(使用场景)
2012-02-23 18:24 11531在实际项目中,简单工厂模式是我们使用的最多的设计模式之一,简单 ... -
AbstractList中Iterator模式的妙用
2012-01-13 11:51 978AbstractList中为了实现顺序访问AbstractLi ... -
适合使用命令模式的情景
2012-01-13 11:31 919情景1.当借个类都拥有 ... -
Iterator模式
2012-01-13 10:57 897我个人常叫它游标模式,该模式的主要目的就是,顺序访问集合中的各 ... -
使用工厂设计模式的场景
2012-01-12 15:43 2795创建类对象虽然可以使用new(底层也是通过反射创建对象的),但 ... -
JDK中使用的设计模式
2012-01-13 10:04 14431.抽象工厂模式 实 ... -
JDK中使用的设计模式代码实例
2012-01-05 17:38 0http://stackoverflow.com/questi ... -
享元模式
2011-12-23 10:22 1041通常情况下,我们会需 ... -
策略模式
2011-12-22 17:07 891所谓策略模式就是定义了多种算法,而让不同算法之间的切换不会影响 ... -
合成设计模式
2011-12-22 16:28 991如果要将对象组织到树中,使用树来表示对象之间的关系,请考虑使用 ... -
责任链模式
2011-12-20 18:35 844此文转正于http://wenku.baidu.com/vie ... -
多线程设计模式(Thread-Specific storage)
2011-12-12 15:29 5857引用自http://www.riabook.cn/doc/de ... -
代理模式
2011-11-30 15:26 940代理模式实际上是对对象的一种代理,以控制对象的访问。 有些情况 ... -
观察者模式
2011-11-16 14:48 1425声明转载的,简单易懂,呵呵 观察者模式的构造 l 抽 ... -
命令模式
2011-11-16 14:11 1258今天想学学命令模式,看见了一个文章讲的就是命令模式,感觉实例比 ... -
建造模式
2011-11-14 12:03 926建造模式是将负责对象 ... -
设计模式之适配器模式
2011-11-09 18:24 973适配器模式:主要是为了解决,老的对象在新的环境中不兼容的现象。 ... -
设计模式之模版方法
2011-11-09 16:31 824模版方法是一种非常简单的设计模式:简单的理解就是将关键的业务方 ...
相关推荐
桥梁模式是一种结构型设计模式,它将抽象部分与实现部分分离,使得它们可以独立地进行变化。这种模式的主要目的是为了将抽象化和实现化解耦,使得两者可以独立发展,增加了系统的灵活性。在实际开发中,当一个类有多...
桥梁模式(Bridge Pattern)是设计模式中的一种结构型模式,它的核心思想是将抽象部分与实现部分分离,使得它们可以独立地进行变化。在这个主题中,我们将深入探讨桥梁模式的原理、结构以及如何在Java中实现。 首先...
**桥梁设计模式(Bridge Pattern)详解** 在软件工程中,桥梁设计模式是一种结构型设计模式,它将抽象部分与其实现部分分离,使它们可以独立地进行变化。这个概念源于对象的多态性,旨在降低类之间的耦合度,提高...
**桥梁模式(Bridge)**是一种结构型设计模式,它的主要目的是将抽象部分与其实现部分解耦,使得它们可以独立地进行变化。在C++编程中,这种模式尤其有用,因为它允许我们创建灵活且可扩展的系统,同时保持代码的低...
涵盖了策略模式、代理模式、单例模式、多例模式、工厂方法模式、抽象工厂模式、门面模式、适配器模式、模板方法模式、建造者模式、桥梁模式、命令模式、装饰模式、迭代器模式等十四种常用的设计模式。 策略模式...
设计模式课程设计 本课程设计旨在使用设计模式来设计一个画图程序,实现基本图形的绘制功能和图形操作功能。通过使用设计模式,可以提高系统的灵活性和可维护性。 1. 需求分析 系统需求包括基本图形的绘制功能和...
JavaScript设计模式.pdf JavaScript设计模式是指在软件开发中使用JavaScript语言编写的设计模式。这些设计模式旨在提高代码的重用性、可读性、维护性和扩展性。以下是JavaScript设计模式的知识点总结: 1. 单体...
在软件开发领域,设计模式是经过时间和实践验证的解决方案模板,用于解决常见问题。本作业以“软件设计模式”为主题,特别关注了装饰模式、工厂模式和适配器模式的运用。这三种模式都是面向对象设计的核心部分,它们...
├─第一章 旭瑶-小滴架构师成长系列软件设计模式课程介绍 │ 1.2设计模式全家桶课程大纲速览.mp4 │ ├─第二章 想成为架构师的你,不可不知道的...│ 6.1-接口之间的桥梁-适配器设计模式你知道多少.mp4 │ 6.4
设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的经验总结。这些模式在不同的场景下被反复验证并被广泛接受,为开发者提供了一种标准的、可复用的解决方案。在这个“设计模式之美”的学习笔记...
【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之禅》中的23种...
浅析23种软件设计模式 软件设计模式是软件开发中的一种解决方案,旨在解决软件设计中的各种问题。下面我们将对23种常见的软件设计模式进行浅析。 1. 工厂模式:工厂模式的主要思想是将客户类和工厂类分开,客户类...
DAO(Data Access Object)设计模式是软件开发中一种常见的用于处理数据访问的模式,它将业务逻辑与数据访问逻辑分离,使得代码结构更加清晰,更易于维护和测试。在Java开发中,DAO模式广泛应用于数据库操作,为应用...
《设计模式》是一本在IT领域中广为流传的经典著作,它深入浅出地阐述了软件工程中的设计模式,帮助开发者提升代码质量和可维护性。这本书涵盖了多种设计模式,其中包括了MVC(Model-View-Controller)模式以及工厂...
根据提供的文档概览,我们可以对每个章节所涉及的设计模式进行详细的阐述和解释。下面将针对文档中提及的设计模式逐一展开,以便更好地理解这些模式的概念、结构、应用场景以及优缺点。 ### 1. 面向对象程序设计...
设计模式是软件工程中的一种最佳实践,用于解决在开发过程中经常遇到的问题,提供了一种标准的解决方案。在Java编程中,设计模式的应用广泛且至关重要,能够提高代码的可读性、可维护性和可扩展性。以下是对标题和...
桥梁模式是一种将抽象部分与它的实现部分分离,使它们都可以独立变化的设计模式。这是一种结构型设计模式,通过分离抽象和实现,可以自由地组合不同的抽象和实现,从而达到代码的解耦和复用。例如,在处理图形界面时...
设计模式不仅体现了良好的编程习惯,也是经验丰富的开发者与新手之间知识传承的桥梁。 在“设计模式”这个主题中,我们可以深入探讨以下几个关键知识点: 1. **设计原则**:设计模式的基础是面向对象设计的七大...
**MVC设计模式详解** MVC(Model-View-Controller)设计模式是一种广泛应用于软件开发,尤其是Web应用程序中的架构模式。它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以此...