科技行者

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

知识库

知识库 安全导航

至顶网软件频道基础软件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)
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

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