设计模式六 之 适配器模式(Adapter Pattern)

适配器模式(Adapter Pattern)对象

两个不相干的接口想互通的时候,是做为两个不兼容的接口之间的桥梁继承

例如:读卡器是做为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就能够经过笔记原本读取内存卡。接口

意图:将一个类的接口转换成客户但愿的另一个接口。适配器模式使得本来因为接口不兼容而不能一块儿工做的那些类能够一块儿工做。内存

主要解决:主要解决在软件系统中,经常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能知足的。io

什么时候使用: 一、系统须要使用现有的类,而此类的接口不符合系统的须要。 二、想要创建一个能够重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在未来引进的类一块儿工做,这些源类不必定有一致的接口。 三、经过接口转换,将一个类插入另外一个类系中。(好比老虎和飞禽,如今多了一个飞虎,在不增长实体的需求下,增长一个适配器,在里面包容一个虎对象,实现飞的接口。)重构

如何解决:继承或依赖(推荐)。软件

关键代码:适配器继承或依赖已有的对象,实现想要的目标接口。jdbc

应用实例: 一、美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V。 二、JAVA JDK 1.1 提供了 Enumeration 接口,而在 1.2 中提供了 Iterator 接口,想要使用 1.2 的 JDK,则要将之前系统的 Enumeration 接口转化为 Iterator 接口,这时就须要适配器模式。 三、在 LINUX 上运行 WINDOWS 程序。 四、JAVA 中的 jdbc。程序

优势: 一、可让任何两个没有关联的类一块儿运行。 二、提升了类的复用。 三、增长了类的透明度。 四、灵活性好。db

缺点: 一、过多地使用适配器,会让系统很是零乱,不易总体进行把握。好比,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统若是太多出现这种状况,无异于一场灾难。所以若是不是颇有必要,能够不使用适配器,而是直接对系统进行重构。 2.因为 JAVA 至多继承一个类,因此至多只能适配一个适配者类,并且目标类必须是抽象类。

相关文章
相关标签/搜索