桥接模式(Bridge)
关键字: bridge一、介绍
桥接模式的主要目的是要将类的抽象部分与它的实现分离,使各个不同类之间都能独立的变化和衔接。
首先,定义一个抽象的基类,可以说这就是桥梁吧! 下面的一些个类相对来说要简单些了,都是用来基于已有的桥梁来添砖加瓦的。 而实际调用的过程可以示例如下: 三、分析 从以上的实例,我们大致可以总结出桥接模式的几个主要角色: 实现一个桥接模式,我们需要定义Abstraction的桥接抽象类,并注意在其中封装Implementor的实现,其他的应该都显而易懂。 作为一种设计模式,桥接模式的主要特点就是:
二、实例public abstract class Soda {
private SodaImp sodaImp;
public void setSodaImp(SodaImp sodaImp) {
this.sodaImp = sodaImp;
}
public SodaImp getSodaImp() {
return this.sodaImp;
}
public abstract void pourSoda();
}
注意这个类中间封装了一个SodaImp的基本操作类,这个类的主要目的也就是通过它的新方法pourSoda()来对外转发SodaImp中的基本动作。//SodaImp抽象类或接口定义
public abstract class SodaImp {
public abstract void pourSodaImp();
}
//实例化的Soda类(可以定义多个)
public class MediumSoda extends Soda {
public MediumSoda() {
}
public void pourSoda() {
SodaImp sodaImp = this.getSodaImp();
for (int i = 0; i < 2; i++) {
System.out.print("...glug...");
sodaImp.pourSodaImp();
}
System.out.println(" ");
}
}
//实例化的SodaImp类(可以定义多个)
public class CherrySodaImp extends SodaImp {
CherrySodaImp() {}
public void pourSodaImp() {
System.out.println("Yummy Cherry Soda!");
}
}
class TestBridge {
public static void testCherryPlatform() {
System.out.println(
"testing medium soda on the cherry platform");
MediumSoda mediumSoda = new MediumSoda();
mediumSoda.setSodaImp(new CherrySodaImp());
mediumSoda.pourSoda();
}
public static void main(String[] args) {
testCherryPlatform();
...
}
}
1、分离接口及其实现部分,这里实现了Abstraction和Implementor的分离,有助于降低对实现部分的依赖性,从而产生更好的结构化系统。
2、提高了可扩充性,可以独立的对Abstraction和Implementor层次结构进行扩充。
- 11:30
- 浏览 (213)
- 评论 (0)
- 分类: Design Patterns
- 相关推荐
发表评论
- 浏览: 14958 次
- 性别:

- 来自: 中国广东

- 详细资料
搜索本博客
我的相册
共 9 张
最近加入圈子
最新评论
-
利用Javascript向页面中插 ...
柳暗花明,感谢
-- by redasurc -
Web2.0时代的新秀 - Nexaw ...
dennis_zane 写道这个与Mozilla的XUL或者微软的XAML有什么 ...
-- by tailsherry -
Web2.0时代的新秀 - Nexaw ...
这个与Mozilla的XUL或者微软的XAML有什么不同呢?
-- by dennis_zane -
Web2.0时代的新秀 - Nexaw ...
49271743 写道插件怎么加到 MYECLIPSE里呢? Nexaweb的出 ...
-- by tailsherry -
Web2.0时代的新秀 - Nexaw ...
我还是看好jsf,结合netbeans的vwp,生产力很高。
-- by jim19770812






评论排行榜