网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> Java编程 >> 文章正文
  设计模式之--Bridge            【字体:
设计模式之--Bridge
作者:佚名    文章来源:不详    点击数:    更新时间:2007-9-12    

在什么情况下使用桥梁模式:
1如果一个系统需要在构件的抽象化角色和具体角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系。
正在装载数据……

2设计要求实现化角色的任何改变不应当影响客户端,或者说实现化角色的改变对客户端是完全透明的。
3一个构件有多于一个的抽象化角色和实现化角色,系统需要他们之间进行动态耦合。
4虽然在系统中使用继承是没有问题的,但是由于抽象化角色和具体化角色需要独立变化,设计要求需要独立管理这两者。

/**
 *      +飞机(abstract)<---------------->+飞机制造商(abstract)
 *       |_载客的飞机(extends)             |_空中巴士公司(extends)
 *       |_运货的飞机(extends)             |_波音公司(extends)
 *       |_麦道公司(extends)
 *
 *将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的
 *强关联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用
 *组合/聚合关系而不是继承关系,从而使两者可以独立的变化。
 *
 *如果有一种新的飞机类型,直接继承于Airplane就可;
 *如果有一个新的飞机生产商,直接继承于AirplaneMaker就可;
 *这样就使得系统的扩展性大大的得到提升。
 */

//飞机的的抽象类
abstract public class Airplane {
 abstract public void fly();
 protected AirplaneMaker airplaneMaker;
 public void setAirplaneMaker(AirplaneMaker airplaneMaker){
  this.airplaneMaker = airplaneMaker;
 }
}

//载客飞机
public class PassengerPlane extends Airplane {
 public void fly() {
  //write your code here
  airplaneMaker.produce();
 }
}

//运货的飞机
public class CargoPlane extends Airplane {
 public void fly() {
  //write your code here
  airplaneMaker.produce()
 }
}

//******************************************************************************

//飞机制造商的抽象类
abstract public class AirplaneMaker {
 abstract public void produce();
}

//空中巴士公司
public class Airbus extends AirplaneMaker {
 public void produce() {
  //write your code here
 }
}

//波音公司
public class Boeing extends AirplaneMaker {
 public void produce() {
  //write your code here
 }
}

//麦道公司
public class MD extends AirplaneMaker {
 public void produce() {
  //write your code here
 }
}

//main
public static void main(String[] args){
 //需要得到波音公司生产的运货飞机
 AirplaneMaker boeing = new Boeing();
 Airplane plane = new CargoPlane();
 plane.setAirplaneMaker(boeing);
 plane.fly();
}




本文来源:http://blog.csdn.net/yuyongpeng/archive/2007/09/10/1779851.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     用java实现web服务器
     用java快速开发linux gu…
     正则表达式分解siemens交…
     [portal参考手册]目录
     jsp中调用oracle存储过程…
  • 面向对象设计原则

  • java 设计工厂模式

  • 开发手记---JAVA数据库连接池

  • JAVA 应用简单破解---类库提…

  • java现状----编程使用的语言…

  • SIP简介,第2部分:SIP SERV…

  • 关于Linux下C/C++程序编译

  • c++ 09 :一览未来

  • visual C++ 6.0开发工具与调…

  • 委托学习(1)-------函数指…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David