java23种设计模式——六、适配器模式
2020-08-28 17:13
1051 查看
目录
java23种设计模式—— 一、设计模式介绍
java23种设计模式—— 二、单例模式
java23种设计模式——三、工厂模式
java23种设计模式——四、原型模式
java23种设计模式——五、建造者模式
java23种设计模式——六、适配器模式
介绍
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,现在我们很多手机没有了耳机的插孔,只留下了type-c的插口,如果我们想使用有线耳机的话就要买一个耳机转type-c的转换器
应用场景
系统需要使用现有的类,而此类的接口不符合系统的需要。
想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。
通过接口转换,将一个类插入另一个类系中。
优缺点
- 优点
1、可以让任何两个没有关联的类一起运行。
2、提高了类的复用。
3、增加了类的透明度。
4、灵活性好。
- 缺点
1、过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。
2.由于 JAVA 至多继承一个类,所以至多只能适配一个适配者类,而且目标类必须是抽象类。
模式实现
适配器模式有如下三个个角色:
- 源(Adaptee):目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以
是具体类,相当于typec线。 - 适配器(Adapter):连接目标和源的中间对象,可以调用另一个接口,作为一个转换器。相当于耳机转typec转换器。
- 目标(Target):即被适配的角色,相当于手机。
首先我们有一个手机类,有一个typec接口默认可以充电
/** * @author codermy * @createTime 2020/7/25 */ public class Phone { public String throwTypec(){ System.out.println("使用了typec接口"); return "充电"; } }
有一个耳机可以放音乐
/** * @author codermy * @createTime 2020/7/25 */ public interface Headset { String music(); }
现在买了一个转换器可以让有线耳机链接手机
/** * @author codermy * @createTime 2020/7/25 * 转换器 */ public class Converter implements Headset { private Phone phone; public Converter(Phone phone){ this.phone = phone; } @Override public String music() { String s = phone.throwTypec(); System.out.println(String.format("%s -------------- > %s",s,"听歌")); return "听歌"; } }
用户使用转接器
/** * @author codermy * @createTime 2020/7/25 */ public class Client { public static void main(String[] args) { Phone phone = new Phone(); Headset headset = new Converter(phone); headset.music(); } }
输出
使用了typec接口 充电 -------------- > 听歌
相关文章推荐
- Java23种设计模式案例:适配器模式(adapter)
- Java23种设计模式——深入理解对象适配器模式与抽象外观模式
- Java的23种设计模式----适配器模式
- Java经典23种设计模式之结构型模式(三)------附代理模式、适配器模式、外观模式区别
- java_23种设计模式之适配器模式
- Java开发中的23种设计模式详解----适配器模式
- Java开发中的23种设计模式之六:适配器模式(Adapter)
- java23种设计模式之适配器模式(Adapter)
- Java 23种设计模式之适配器模式
- JAVA开发的23种设计模式之 --- 适配器模式
- Java23种设计模式之适配器模式(Adapter Pattern)
- 重学java23种设计模式(6)适配器模式
- java23种常用设计模式之适配器模式(Adapter)
- 23种设计模式(5) java适配器模式
- JAVA的23种设计模式---适配器模式
- Java23种设计模式之-----适配器模式
- java23种设计模式--适配器模式(Adapter)
- 23种经典设计模式的java实现_2_适配器模式
- 23种经典设计模式的java实现_2_适配器模式
- 23种java设计模式之适配器模式