关闭

设计模式(九)——适配器模式

191人阅读 评论(0) 收藏 举报
分类:

      将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起的两个类能够在一起工作。

适配器模式是把一个接口或类转换成其他的接口或者类,从另一方面讲,适配器模式也是一种包装模式,类图如下:

类图



三个角色:

Target目标角色:该角色定义把其他类转换成何种接口,也就是期望接口;

Adaptee源角色:想要转换的对象,是已经存在运行良好的类;

Adapter适配器角色:把源角色转换成目标角色;


代码:

public interface Target {

	public void request();
}

 /**
 * 原角色,需要转化为Target类型
 * @author isc
 *
 */
public class Adaptee {
    public void doSth(){
        System.out.println("我是原角色,请勿修改!");
    }
}

public class Adapter extends Adaptee implements Target{

    @Override
    public void request() {
        super.doSth();
    }
}

public class Client {

    public static void main(String[] args) {
        Target t= new Adapter();
        t.request();
    }
}


使用场景:

系统扩展时需要使用一个已有的类,但是这个类又不符合新系统的接口,这时可以选择用适配器模式。它是解决正在运行中的项目问题,而不是说设计阶段应该考虑使用的问题。此外项目一定要遵循依赖导致和里氏替换原则。



0
0
查看评论

Java设计模式----适配器模式

1. 适配器模式简介      适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。      适用场景: ...
  • ymeng_bupt
  • ymeng_bupt
  • 2011-09-29 12:42
  • 9481

23种设计模式(13):适配器模式

本文主要介绍设计模式中的适配器模式。
  • psp0001060
  • psp0001060
  • 2016-02-25 16:21
  • 670

大话设计模式—适配器模式

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔...
  • lmb55
  • lmb55
  • 2016-03-29 19:47
  • 1772

java 设计模式-----适配器模式

现实中的问题 有一个插座,这个插座是三个口的,但是我们手上只有两个触角的插头,一种笨方法就是直接强行把两个触角掰弯,插进去(这种事情我就做过),还有一种方法就是找一个转换头来。 看下面一张图就大概明白了,很明显现有系统很难和厂商提供的匹配,该怎么做呢?那么适配器这...
  • yujin753
  • yujin753
  • 2015-05-31 12:12
  • 1249

JAVA设计模式初探之适配器模式

1. 概述   将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 2. 解决的问题   即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。     ...
  • jason0539
  • jason0539
  • 2014-03-29 07:53
  • 45812

五分钟一个设计模式之适配器模式

五分钟一个设计模式,用最简单的方法来描述设计模式。查看更多设计模式,请点击五分钟一个设计模式系列 http://blog.csdn.net/daguanjia11/article/category/3259443认识适配器模式适配器模式的定义是:将一个类的接口转换成客户端希望的另外一个接口。适配器...
  • daguanjia11
  • daguanjia11
  • 2015-06-09 07:14
  • 1562

设计模式——适配器模式 Java源代码

适配器模式,《Head First Design Patterns》给的代码的例子是关于鸭子和火鸡,然而鸭子和火鸡离日常生活比较远。这次,我改编了实验楼网站上面的例子,关于插座和充电器。
  • u013390476
  • u013390476
  • 2016-01-01 16:02
  • 2569

设计模式之适配器模式(adaptor pattern)

1 适配器模式的定义在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。2 实际应用中的例子 比如我们去日本...
  • suifeng3051
  • suifeng3051
  • 2016-05-25 11:32
  • 2994

设计模式-适配器模式(Go语言描述)

在上一篇博客设计模式-策略模式(Go语言描述)中我们用最简单的代码用go语言描述了 设计模式中的策略模式,用最简单的实例来描述相信可以让初学者可以很轻松的掌握各种设计模式。继上篇博客,我们接着用同样简单的代码来了解一下适配器模式。适配器模式介绍说起适配器模式,相信很多做android的同学第一印象...
  • qibin0506
  • qibin0506
  • 2016-01-28 08:56
  • 6359

设计模式php实例:适配器模式

适配器模式将一个类的换成客户端需要的另一个接口,使原本不兼容的接口能一起工作。一个现实中的例子,假如屋里墙上只有两项插口,而风扇有三个插头,这时需要再拿一个移动插线板,插线板接入墙壁插口的一段是两项插头,插线板另外一段能够提供三项插口给风扇,这时候插线板起到了一个适配器的作用。 在应用中,适配器模...
  • wzllai
  • wzllai
  • 2012-08-05 19:54
  • 3109
    个人资料
    • 访问:52555次
    • 积分:1535
    • 等级:
    • 排名:千里之外
    • 原创:97篇
    • 转载:41篇
    • 译文:0篇
    • 评论:25条
    最新评论