java适配器模式实际应用,java适配器模式实现
00-1010 1.什么是适配器模式?2.适配器模式3的定义。适配器模式4的优点和缺点。适配器模式5的结构和实现。适配器模式6的代码实现。适配器模式的应用场景。
00-1010其实适配器这个词大家应该都很熟悉。我们知道苹果手机iPhone已经不提供充电插头了,盒子里只有一根数据线,所以不能单独用这根数据线给220V的插件充电。所以我们需要重新购买一个适配器来连接插件和手机。这是适配器。
其实也可能出现在软件设计中。需要开发的具有一定业务功能的组件在现有的组件库中已经存在,但是与当前系统的接口规范不兼容。如果重新开发这些组件的成本很高,那么适配器模式可以很好地解决这些问题。
00-1010适配器模式:将一个类的接口转换成客户想要的另一个接口,让那些因为接口不兼容而无法协同工作的类可以协同工作。
适配器模式可以分为两种类型:类结构模式和对象结构模式。前者的类间耦合度高于后者,且要求程序员了解现有构件库中相关构件的内部结构,因此应用相对较少。
00-1010优点:
客户端适配器可以透明地调用目标接口,并重用现有的类。程序员不需要修改原代码而是重用已有的适配器类,将目标类和适配器类解耦,解决了目标类和适配器类接口不一致的问题。在许多业务场景中,它符合开放封闭原则的缺点:
适配器编写过程需要结合业务场景综合考虑,可能会增加系统的复杂度,增加代码阅读的难度,降低代码的可读性。过度使用适配器会使系统代码混乱。
00-1010(以下结构参考自互联网)
模式的结构:
目标接口:当前系统业务期望的接口,可以是抽象类,也可以是适配器类。它是现有组件库中被访问和适配的组件接口适配器类。它是一个转换器,通过继承或引用适配器对象将适配器接口转换为目标接口,以便客户根据目标接口的格式访问适配器类适配器模式的结构。
对象模式的结构:
00-1010A,使用组合实现适配器:
现在我们有一个三相笔记本电脑插头,但现在我们需要使用两相插头进行充电,所以我们需要为这个插头安装一个两相适配器:
三相插座接口:
/* * *三相插座接口*/public interface Three plug if {//public void powerwithree()由三相电流供电;}国标两相插座:
/* * * GB两相插座*/public类gbtowplug { public void power with two(){ system . out . println(使用两相电流供电);}}笔记本:
/* * *笔记本*/公共课笔记本{ Private Threeplugifplug公共笔记本(three plug if plug){ this . plug=plug;}//使用socket对public void charge(){ plug . powerwithtree();}}三相转两相插座适配器:
/* * *三相转两相插座适配器*/public类twoplugadapter实现three plug if { private gbtowplug plug;public two plug adapter(GBTowPlug plug){ this . plug=plug;} @ override public void power with tree(){ system . out . println( by conversion );plug . power with two();}}测试类别:
公共类测试{ public static void main(String[]args){ gbtoplug
two = new GBTowPlug(); ThreePlugIf three = new TwoPlugAdapter(two); NoteBook nb = new NoteBook(three); nb.charge();}}输出结果:
通过转换使用二相电流供电
采用组合方式的适配器称为对象适配器
特点:
把被适配者作为一个对象组合到适配器类中,以修改目标接口包装给适配者
B、使用继承的方式实现适配器:
继承适配器:
/** * 采用继承方式的插座适配器 */public class TwoPlugAdapterExtends extends GBTowPlug implements ThreePlugIf{ @Override public void powerWithThree() { System.out.println("借助继承适配器"); this.powerWithTwo(); }}
测试类:
public class Test { public static void main(String[] args) { GBTowPlug two = new GBTowPlug(); ThreePlugIf three = new TwoPlugAdapter(two); NoteBook nb = new NoteBook(three); nb.charge(); //使用继承方法 three = new TwoPlugAdapterExtends(); nb = new NoteBook(three); nb.charge();}}
输出:
通过转换使用二相电流供电
借助继承适配器使用二相电流供电
采用继承方式的称为类适配器
特点:
通过多重继承不兼容接口,实现对目标接口的匹配,单一的为某个类而实现适配
6、适配器模式的应用场景
之前开发的系统存在满足新系统功能需求的类,但其接口同新系统的接口不一致使用第三方提供的组件,但组件接口定义和自己要求的接口定义不同最后,祝大家假期愉快~~~~
到此这篇关于Java十分钟精通进阶适配器模式的文章就介绍到这了,更多相关Java 适配器模式内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。