适配器模式_java适配器中经典案例

(1) 2024-08-29 18:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
适配器模式_java适配器中经典案例,希望能够帮助你!!!。

1、什么是适配器

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。举个例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。

优点:

(1)、可以让任何两个没有关联的类一起运行。

(2)、提高了类的复用。

(3)、增加了类的透明度。

(4)、灵活性好。

缺点:

(1)、过多地使用适配器,会让系统非常零乱。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,因此如果不是很有必要,不使用适配器。

(2)、由于 JAVA 至多继承一个类,所以至多只能适配一个适配者类,而且目标类必须是抽象类。

2、适配器模式中的角色分析

目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。

需要适配的类(Adaptee):需要适配的类或适配者类。

适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。

3、实现方式

(1)、类适配器(采用继承实现)

(2)、对象适配器(采用对象组合方式实现)

4、代码实现

继承方式:

public class Phone { //充电 public void charging(Voltage5V voltage5V){ if(voltage5V.output5v() == 5){ System.out.println("电压为5v,可以使用"); }else { System.out.println("电压过大 不允许使用"); } } } public class Voltage220V { public int output220v(){ int src = 220; System.out.println("输出220V"); return src; } } public interface Voltage5V { public int output5v(); } public class Voltage5VAdapter extends Voltage220V implements Voltage5V{ @Override public int output5v() { int src = output220v(); int dst = src / 44; return dst; } } public class Test { public static void main(String[] args) { Phone phone = new Phone(); phone.charging(new Voltage5VAdapter()); } }

对象组合方式

public class Voltage220V { public int output220v(){ int src = 220; System.out.println("输出220V"); return src; } } public interface Voltage5V { public int output5v(); } public class Voltage5VAdapter implements Voltage5V { private Voltage220V voltage220V; public Voltage5VAdapter(Voltage220V voltage220V) { this.voltage220V = voltage220V; } @Override public int output5v() { if(null != voltage220V){ int src = voltage220V.output220v(); int dst = src / 44; return dst; }else { return 0; } } }

5、适配器模式在SpringMVC中的应用

(1)、Spring 定义了一个适配接口,使得每一种conroller有一种对应的适配器实现类。

(2)、适配器代替controller 执行相应的方法。

(3)、扩展controller 时,只需要增加一个适配器类就完成了SpringMVC 的扩展。

适配器模式_java适配器中经典案例_https://bianchenghao6.com/blog__第1张

路过的朋友们,帮忙点个赞。[玫瑰][玫瑰]

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复