时间:2021-05-20
本文实例讲述了Java经典设计模式之适配器模式。分享给大家供大家参考,具体如下:
适配器模式是把一个类的接口适配成用户所期待的,使得原本由于接口不兼容而不能一起工作的一些类可以在一起工作从而实现用户所期望的功能。
适配器模式的优势:
1. 通过适配器,客户端可以调用统一接口,操作简单直接,并且代码逻辑紧凑,使用起来方便。
2. 代码复用,适配器模式就是解决因为环境要求不相同 的问题,通过适配实现代码复用。
3. 将目标类和适配器类解耦,通过新建一个适配器类来重用现在的类,不用再去重复修改原有代码,实现开闭原则。
共有两类适配器模式
1.对象适配器模式: 在这种适配器模式中,适配器容纳一个它包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。
2. 类适配器模式: 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。
示例代码:
/*** @description:* 原有的接口功能,比如是给电动车充电功能*/public interface FirstBaseIf {void charging();//充电}/*** 要实现的操作功能* @description:*/public class NewFunction {public void powerWithTwo(){System.out.println(“新功能:给电动汽车也可以充电啦”);}}/***新建适配器类,来实现对原有接口FirstBaseIf的操作使用* @description:*/public class FunctionAdapter implements FirstBaseIf {private NewFunction plug;public FunctionAdapter(NewFunction plug){this.plug=plug;}@Overridepublic void charging() {//重写原有接口中的方法,从而实现接口转化System.out.println(“通过适配器转化”);plug.powerWithTwo();}}//——–测试代码——————-public class Test {private FirstBaseIf plug;public Test(FirstBaseIf plug) { this.plug = plug;}public static void main(String[] args) { NewFunction two = new NewFunction(); FirstBaseIf three = new FunctionAdapter(two);//这里就是通过适配器实现转换 Test note = new Test(three); note.charge();}public void charge() { plug.charging();//使用原有接口中的功能}}运行结果:
适用场景:
在Java程序中,如果一个抽象类或者接口的话,就必须要重写所有的抽象方法。
那么,如果一个接口中定义的抽象方法过多,而子类中很多抽象方法又不需要用到,就应该设计一个适配器。通过Java语言进行的Android开发中,就经常会用到适配器模式。
更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了PHP设计模式之适配器模式原理与用法。分享给大家供大家参考,具体如下:一、什么是适配器模式适配器模式有两种:类适配器模式和对象适配器模式。其中类适
本文实例讲述了Python设计模式之适配器模式原理与用法。分享给大家供大家参考,具体如下:适配器模式(AdapterPattern):将一个类的接口转换成为客户
本文实例讲述了PHP设计模式之适配器模式(Adapter)原理与用法。分享给大家供大家参考,具体如下:这个适配器模式,就是为了将一个类的接口转换成客户希望的另外
本文实例讲述了Java适配器模式应用之电源适配器功能。分享给大家供大家参考,具体如下:一、模式定义存在两种适配器模式1对象适配器模式,在这种适配器模式中,适配器
本文实例讲述了javascript设计模式–适配器模式原理与应用。分享给大家供大家参考,具体如下:介绍:适配器模式的产生也来自具体的问题,拿mac来举例,我不能