注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 [业内传闻]今天,7月25日..
 帮助

结合实现谈设计模式——适配器模式


2006-07-04 10:30:00
 标签:设计模式   [推送到技术圈]

 系统集成时,最常见的问题是接口不一致,而导致无法使用。适配器的意图就是,使接口不兼容的类能够协同工作。通常情况下,这些类在逻辑上的功能是一致或者相似的。
     适配器有两种类型:类适配器和对象适配器。
      类适配器通过多重继承对一个接口与另一个接口进行匹配,它的使用有一定限制,在.NET 中不支持多继承,举例来说:
      Target 定义了 Client 使用的与特定领域相关的接口,Client 通过调用 Target 实现某一个特定的操作。Adaptee 是一个已经定义的类,需要与 Target 协同工作,这个接口需要适配,使用 Adatpter 适配器适配 Adaptee 和 Target 接口。此时,如果 Target 是一个类,而不是接口,则无法实现类适配器,而需要使用对象适配器。
      对象适配器采用对象组合,通过类组合的方式,实现类与类的接口。
      使用场合:1、需要使用一个已经存在的类,但接口与设计要求不符。2、希望创建一个可以复用的类,该类可以与其他不相关的类或者是将来不可预见的类协同工作。
      .NET 中的适配器:ADO.NET 为统一的数据访问提供了多个接口和基类,使应用程序的数据操作统一到 DataSet 上,而与具体的数据库类型无关。甚至,可以针对特殊的数据源编制自己的 DataAdapter,从而是我们的应用程序与这些特殊的数据源相兼容。
例如:在多数据源的数据采集系统中,需要从自定义实时数据库中读出并处理数据。我们已经有了数据显示类和数据处理类,这些类是为关系数据库开发的,但同样可以用在实时数据显示中。由于这些类操作的是 DataSet,因此,我们可以定义一个特殊的适配器实现从实时数据库接口对象中填充 DataSet,从而使得针对这些自定义的数据库的操作与一般的关系数据库完全一样。由于针对实时数据库只涉及查询,不涉及更新和删除,所以实现并不复杂。采用数据适配器可以使不同格式的数据源都可以被相同的上层应用使用,从而提高了系统的可扩展性和可维护性。




    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: