结合实现谈设计模式——适配器模式
2006-07-04 10:30
495 查看
系统集成时,最常见的问题是接口不一致,而导致无法使用。适配器的意图就是,使接口不兼容的类能够协同工作。通常情况下,这些类在逻辑上的功能是一致或者相似的。
适配器有两种类型:类适配器和对象适配器。
类适配器通过多重继承对一个接口与另一个接口进行匹配,它的使用有一定限制,在.NET 中不支持多继承,举例来说:
Target 定义了 Client 使用的与特定领域相关的接口,Client 通过调用 Target 实现某一个特定的操作。Adaptee 是一个已经定义的类,需要与 Target 协同工作,这个接口需要适配,使用 Adatpter 适配器适配 Adaptee 和 Target 接口。此时,如果 Target 是一个类,而不是接口,则无法实现类适配器,而需要使用对象适配器。
对象适配器采用对象组合,通过类组合的方式,实现类与类的接口。
使用场合:1、需要使用一个已经存在的类,但接口与设计要求不符。2、希望创建一个可以复用的类,该类可以与其他不相关的类或者是将来不可预见的类协同工作。
.NET 中的适配器:ADO.NET 为统一的数据访问提供了多个接口和基类,使应用程序的数据操作统一到 DataSet 上,而与具体的数据库类型无关。甚至,可以针对特殊的数据源编制自己的 DataAdapter,从而是我们的应用程序与这些特殊的数据源相兼容。
例如:在多数据源的数据采集系统中,需要从自定义实时数据库中读出并处理数据。我们已经有了数据显示类和数据处理类,这些类是为关系数据库开发的,但同样可以用在实时数据显示中。由于这些类操作的是 DataSet,因此,我们可以定义一个特殊的适配器实现从实时数据库接口对象中填充 DataSet,从而使得针对这些自定义的数据库的操作与一般的关系数据库完全一样。由于针对实时数据库只涉及查询,不涉及更新和删除,所以实现并不复杂。采用数据适配器可以使不同格式的数据源都可以被相同的上层应用使用,从而提高了系统的可扩展性和可维护性。
适配器有两种类型:类适配器和对象适配器。
类适配器通过多重继承对一个接口与另一个接口进行匹配,它的使用有一定限制,在.NET 中不支持多继承,举例来说:
Target 定义了 Client 使用的与特定领域相关的接口,Client 通过调用 Target 实现某一个特定的操作。Adaptee 是一个已经定义的类,需要与 Target 协同工作,这个接口需要适配,使用 Adatpter 适配器适配 Adaptee 和 Target 接口。此时,如果 Target 是一个类,而不是接口,则无法实现类适配器,而需要使用对象适配器。
对象适配器采用对象组合,通过类组合的方式,实现类与类的接口。
使用场合:1、需要使用一个已经存在的类,但接口与设计要求不符。2、希望创建一个可以复用的类,该类可以与其他不相关的类或者是将来不可预见的类协同工作。
.NET 中的适配器:ADO.NET 为统一的数据访问提供了多个接口和基类,使应用程序的数据操作统一到 DataSet 上,而与具体的数据库类型无关。甚至,可以针对特殊的数据源编制自己的 DataAdapter,从而是我们的应用程序与这些特殊的数据源相兼容。
例如:在多数据源的数据采集系统中,需要从自定义实时数据库中读出并处理数据。我们已经有了数据显示类和数据处理类,这些类是为关系数据库开发的,但同样可以用在实时数据显示中。由于这些类操作的是 DataSet,因此,我们可以定义一个特殊的适配器实现从实时数据库接口对象中填充 DataSet,从而使得针对这些自定义的数据库的操作与一般的关系数据库完全一样。由于针对实时数据库只涉及查询,不涉及更新和删除,所以实现并不复杂。采用数据适配器可以使不同格式的数据源都可以被相同的上层应用使用,从而提高了系统的可扩展性和可维护性。
相关文章推荐
- 学习php设计模式 php实现适配器模式
- 设计模式C++实现(3)——适配器模式
- PHP设计模式笔记:使用PHP实现适配器模式
- 结合项目实例 回顾传统设计模式(七)适配器模式(附外观模式)
- 《模式——工程化实现及扩展》(设计模式C# 版)《适配器模式 Adapter》——“自我检验"参考答案
- 设计模式C++实现(3)——适配器模式
- 设计模式C++实现(3)——适配器模式
- scala实现设计模式之适配器模式
- 设计模式--适配器模式--Java实现
- 设计模式C++实现(3)——适配器模式
- 结合项目实例 回顾传统设计模式(七)适配器模式(附外观模式)
- 我所理解的设计模式(C++实现)——适配器模式(Adapter Pattern)
- 通过例子学设计模式之--适配器模式以及使用场景说明(C++实现)
- 设计模式C++实现(3)——适配器模式
- 我所理解的设计模式(C++实现)——适配器模式(Adapter Pattern)
- java语言实现结构型设计模式—适配器模式
- 23种设计模式之适配器模式(结构型,3 Adapter,c++实现)
- 详解JavaScript实现设计模式中的适配器模式的方法
- 设计模式C++实现(3)——适配器模式
- 深入浅出学习设计模式(C#实现)-适配器模式