科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件java设计模式之Bridge(抽象和行为分开)

java设计模式之Bridge(抽象和行为分开)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 Bridge定义 :  将抽象和行为划分开来,各自独立,但能动态的结合.

作者:中国IT实验室 来源:中国IT实验室 2007年8月26日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
 看看是如何动态结合的,在使用之前,我们做个准备工作,设计一个单态类(Singleton)用来hold当前的CoffeeImp:
  
  public class CoffeeImpSingleton
  {
    private static CoffeeImp coffeeImp;
  
    public CoffeeImpSingleton(CoffeeImp coffeeImpIn)
     {this.coffeeImp = coffeeImpIn;}
  
    public static CoffeeImp getTheCoffeeImp()
    {
      return coffeeImp;
    }
  }
  
  看看中杯加奶 和大杯加奶 是怎么出来的:
  
  //拿出牛奶
  CoffeeImpSingleton coffeeImpSingleton = new CoffeeImpSingleton(new MilkCoffeeImp());
  
  //中杯加奶
  MediumCoffee mediumCoffee = new MediumCoffee();
  mediumCoffee.pourCoffee();
  
  //大杯加奶
  SuperSizeCoffee superSizeCoffee = new SuperSizeCoffee();
  superSizeCoffee.pourCoffee();
  
  注意: Bridge模式的执行类如CoffeeImp和Coffee是一对一的关系, 正确创建CoffeeImp是该模式的关键,
  
  Bridge模式在EJB中的应用
  EJB中有一个Data Access Object (DAO)模式,这是将商业逻辑和具体数据资源分开的,因为不同的数据库有不同的数据库操作.将操作不同数据库的行为独立抽象成一个行为接口DAO.如下:
  
  1.Business Object (类似Coffee)
  
  实现一些抽象的商业操作:如寻找一个用户下所有的订单
  
  涉及数据库操作都使用DAOImplementor.
  
  2.Data Access Object (类似CoffeeImp)
  
  一些抽象的对数据库资源操作
  
  3.DAOImplementor 如OrderDAOCS, OrderDAOOracle, OrderDAOSybase(类似MilkCoffeeImp FragrantCoffeeImp)
  
  具体的数据库操作,如"INSERT INTO "等语句,OrderDAOOracle是Oracle OrderDAOSybase是Sybase数据库.
  
  4.数据库 (Cloudscape, Oracle, or Sybase database via JDBC API)
    • 评论
    • 分享微博
    • 分享邮件
    闂侇収鍠曞▎銏㈡媼閵忋倖顫�

    濠碘€冲€归悘澶愬箖閵娾晜濮滈悽顖涚摃閹烩晠宕氶崶鈺傜暠闁诡垰鍘栫花锛勬喆椤ゅ弧濡澘妫楅悡娆撳嫉閳ь剟寮0渚€鐛撻柛婵呮缁楀矂骞庨埀顒勫嫉椤栨瑤绻嗛柟顓у灲缁辨繈鏌囬敐鍕杽閻犱降鍨藉Σ鍕嚊閹跺鈧﹦绱旈幋鐐参楅柡鍫灦閸嬫牗绂掔捄铏规闁哄嫷鍨遍崑宥夋儍閸曨剚浠樺ù锝嗗▕閳ь剚鏌ㄧ欢鐐寸▕鐎b晝顏遍柕鍡嫹

    重磅专题
    往期文章
    最新文章