应用适配器模式实现通用的数据库访问的程序代码示例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
总体对象内组合多个不同的其它对象。因此,对象适配器可以适配多个不同的原有系统中 的组件接口——从而达到将多个不同的接口统一转换调配为一个共同的接口。下面的示图
杨教授大学堂,版权所有,盗版必究。 3/16 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
为应用对象适配器转换调配多个不同的功能接口的程序类示图。
象”的接口(ObjectDAO)以及它的实现类(ObjectDAOImpl),由于是对 Object 进行操作, 所以任何具体的类(如 Student,,Teacher,User 等)对它都可以适用,下面为接口及对应 的实现类的代码示例。 (1)ObjectDAO 接口及相关的方法的代码示例 import java.util.List; public interface ObjectDAO {
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(2)重用接口不匹配的现有程序类 实现将两个或者多个没有关系(或者不兼容)的类组合在一起使用,并向客户端提供一
个新的统一的功能服务接口,从而达到重用接口不匹配的现有程序类的目标。 (3)重用接口不匹配的第三方的组件
在应用开发中,经常需要重用第三方的组件,但在应用中却发现该第三方组件的接口 定义和自己应用中所需要的接口定义存在差别,但又不希望修改自己的功能接口和有必要 使用第三方组件接口的功能方法。
分方法:
(4)类适配器的应用场合 由于适配器类不仅继承了被适配的某个程序类,同时又实现了需要匹配转换的目标接
口。因此,在适配器程序类中可以访问被适配的某个程序类和目标接口,从而承担起“转 换”的功能。
但这种方式当所应用的语言不支持多重继承的时候(比如 Java 语言)而又需要适配多 个不同的被适配的程序类时,则无法应用该方法。这时可以使用下面将要介绍的对象适配 器。 3、对象适配器的程序结构及应用场合 (1)对象适配器的程序结构
GOF 在他们的设计模式一书中对适配器模式的描述如下:将一个类的接口转换成客户希 望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一 起工作。
其实上面的定义核心思想:在新接口和老接口之间进行适配。 2、适配器模式的主要作用 (1)匹配不同接口的程序类
适配器模式可以使得原本由于接口不兼容而不能一起工作的类可以一起工作,通过提 供适配器类可以实现将一种“接口”转换为另一种“接口”,以满足目标“接口”的应用要 求和重用原有的功能实现的程序代码。
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
应用适配器模式实现通用的数据库访问的程序代码示例
1.1.1 GoF 适配器模式主要技术特性
1、为什么要提供变压器(适配器,Adapter)模式 (1)在进行系统集成时经常遇到的问题是接口不一致——接口不匹配
很多能满足应用功能的软件系统中的功能模块,由于接口不同,而导致无法使用。比 如,常见的媒体播放器软件有微软的 Media Player 和另一个媒体播放器软件 RealNetworks 公司的 RealPlay。但由于它们的接口完全不同和主持不同的音频和视频格式——前者支持 WMF 格式的音频和视频,而后者支持 RM 格式的音频和视频。 (2)如何解决接口不匹配的问题
1.1.2 适配器模式的程序结构
1、适配器模式的两种实现形式 (1)类适配器
只为某个特定的功能类进行转换和匹配的“适配”功能,不适合于对多个不同的功能 类的“适配”功能。 (2)对象适配器
在 Java 来自百度文库言(当然,也包括 C#语言)中由于不支持多重继承关系,因此如果需要转换 和匹配多个不同的源接口时,类适配器将不再适合应用的需要(因为采用继承关系),此时 可以应用对象适配器(采用对象组合关系)。
由于适配器提供了一种“转换”,使得可以复用一个接口不再符合目前应用需求的已存 在的功能类,也可以使一个程序类在发生不可预见的变化时,仅仅影响适配器程序类本身 而不影响使用适配器程序类的不同的客户端程序类——将分散的或者发散的可变性集中在 某处,有利于程序代码的维护修改。
杨教授大学堂,版权所有,盗版必究。 1/16 页
下面的示例图为客户所期望的目标接口中的方法比原来的被适配的组件类还要多,其结 构示图如下。
杨教授大学堂,版权所有,盗版必究。 2/16 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(3)客户所期望的目标接口中的方法比被适配的组件类中的方法还要少 而下面的示图为客户所期望的目标接口中的方法只是原来的被适配的组件类中的一部
(3)对象适配器更优于类适配器 在类适配方式中,是采用继承的方式实现适配行为,类适配器类紧密依赖于被适配的
类;而对象适配器类不再依赖于被适配的类,能够更好地实现松耦合;推荐应用对象适配 器,而少用类适配器。
1.1.3 应用适配器模式实现通用的数据库访问的程序代码示例
1、数据库操作的“抽象”接口和实现类 首先,为了使访问数据库操作的类能达到尽可能的重用,设计和实现了一个比较“抽
对象适配器的程序结构的主要特点是在配器类中采用对象组合(作为配器类中的成员 属性)的方式实现——通过继承一个类(或者实现一个接口),同时再包含另一个类的对象 来实现对多个功能类的适配。下图为对象适配器中转换调配单个接口的程序结构示图。
(2)对象适配器的应用场合 对象适配器中的适配器组件类由于采用对象组合的程序结构,而对象组合可以在一个
因此,对象适配器可以应用于对多个不同的功能类的“适配”功能,可以弥补类适配 器在不支持多重继承的编程语言(如 Java、C#)的实现不足。 2、类适配器的程序结构及应用场合 (1)程序结构实现的要求
类适配器采用继承方式对一个类继承,同时又实现一个接口的方式来与目标接口进行 匹配。类适配器从功能上基本上与前面的转换适配器相同。 (2)客户所期望的目标接口中的方法比被适配的组件类中的方法还要多
如果开发人员希望自己的应用系统中能使用相同的方式来支持这两种播放器,就需要 提供一个相互“适配”的转换接口——也就是可以应用适配器模式解决这个问题。该适配 器类可以将 WMF 格式的音频和视频转换为 RM 格式的音频和视频,从而可以重用 RealPlay 的媒体播放器软件;当然,该适配器类也可以将 RM 格式的音频和视频转换为 WMF 格式 的音频和视频,从而可以重用 Media Player 的媒体播放器软件。 (3)什么是适配器模式
相关文档
最新文档