适配器模式.doc

上传人:hw****26 文档编号:3517212 上传时间:2019-06-01 格式:DOC 页数:6 大小:155.50KB
下载 相关 举报
适配器模式.doc_第1页
第1页 / 共6页
适配器模式.doc_第2页
第2页 / 共6页
适配器模式.doc_第3页
第3页 / 共6页
适配器模式.doc_第4页
第4页 / 共6页
适配器模式.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、Adapter pattern问题引出:大家生活中可能碰到的一个问题就是你新买的手机自带的耳机是2.5接口的,不幸的是有一天你的耳机坏了,你去市面上根本就找不到2.5的耳机了,基本上是3.5接口了,没办法你只好买了个3.5接口的耳机,老板告诉你:“我给你一个适配器”这不问题就解决了。问题分析:3.5的接口的耳机在你手机上本来是没法使用的,因为它没有按照2.5接口的设计啊,而现在我又想使用这幅耳机,于是乎有了“适配器(Adapter) ”这个一个东西出来了。Adapter 模式的定义:把一个类的接口变换成客户端所期待的另外一种接口,使得原本由于接口不兼容而不能再一起工作的那些类可以一起工作。适配

2、器模式分类:1.类的适配器模式(采用继承实现)2.对象适配器(采用对象组合方式实现)类的适配器类图:模式的构成:以问题中例子为模型目标抽象角色(Target):定义客户所期待要使用的接口,我们把手机当做客户端,客户端所需要使用的耳机的接口是2.5的,在这里就可以抽象出来一个2.5接口的设备(并不一定是耳机) 。源角色(Adaptee):需要被适配的接口,在这里指的是我们从市场上买回来的那个3.5接口的耳机。适配器角色(Adapter):用来把源接口转换成符合要求的目标接口的设备,在这里指的是老板送给我们的那个“转换器”。客户端(Client) :这里指的就是那个给我们带来麻烦的手机喽。示例代码

3、:Java 代码 /Target package pattern.adapter; public interface Target public void provide2_5(); /Adaptee package pattern.adapter; public class Adaptee public void provide3_5() System.out.println(“我是一个3.5的接口哦“); /Adapter package pattern.adapter; public class Adapter extends Adaptee implements Target Over

4、ride public void provide2_5() this.provide3_5(); /Client package pattern.adapter; public class CellPhoneClient public static void main(String args) Target target = new Adapter(); /该手机只支持2.5接口的耳机 target.provide2_5(); 输出结果:我是一个3.5的接口哦从输出结果可以看出只支持2.5接口的手机成功的使用3.5的耳机了。这就是适配器模式的作用。对象的适配器模式:对象的适配器模式的不同之处在

5、于 Adapter 角色封装了 Adaptee 角色,而不像类的适配器模式所采取的继承方式。其原理基本上是相似的。应用适配器模式的场景:1.系统需要使用现有的类,而现有类不符合当前系统的要求。如问题的提出。2.系统要建立一个可以重复使用的类,用来与彼此没有太大关联的类或者在将来要引用的类一起工作。在 Junit 中有使用适配器模式的情景。在 TestCase 的 runBare 方法中发现该方法采用了两种模式,模板方法模式(不在本讨论范围)和适配器模式,其中runTest()方法其实 对应的就是我们用户(程序员)所编写的测试方法在 runTest 方法中通过反射最终调用我们所编写的测试方法。我

6、们可从宏观上来分析改代码,junit 作为一个框架,他是没法知道我们要写些什么样的测试方法的,也是就是说他没法在 runbare 方法中直接调用我们所写的测试方法,他就采用适配器模式这样的一个方式来实现。Junit 框架本身没法直接调用客户端所写的测试类,但他可以直接调用他本身拥有的类 TestCase,这里的 TestCase 就相当于 Adapter 了,自己所写了测试类相当于 Adaptee 角色。缺省的适配器模式(Default Adapter):缺省的适配器模式为一个接口提供缺省的实现,子类可以从这个缺省的实现类进行扩展,而不必而原有的接口进行扩展。相信大家在学习 Swing 时“ AWT 中事件的处理”有所接触。他的好处在于客户端不需要去实现与他无关的方法,只做他最关心的事。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。