Java适配器模式(adapter)

网友投稿 484 2022-05-29

文章目录

适配器模式

什么是适配器模式

模式中的角色

适配器的实现方式

1.类适配器方式

2.对象适配器方式

工作中的场景

适配器模式

什么是适配器模式

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。

模式中的角色

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

的类,也可以是接口。

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

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

目标接口

适配器的实现方式

1.类适配器方式

被适配的类

/** * 被适配的类 * (相当于例子中的,PS/2键盘) * @author Administrator * */ public class Adaptee { public void request(){ System.out.println("可以完成客户请求的需要的功能...."); } }

1

2

3

4

5

6

7

8

9

10

11

12

目标类

/** * 定义适配器的功能 目标类 * @author dengp * */ public interface Target { /** * 处理请求的方法 */ void handleReq(); }

1

2

3

4

5

6

7

8

9

10

11

适配器类

/** * 适配器 (类适配器方式) * (相当于usb和ps/2的转接器) * @author 波波烤鸭 * */ public class Adapter extends Adaptee implements Target { @Override public void handleReq() { super.request(); } }

1

2

3

4

5

6

7

8

9

10

11

12

13

测试

public static void main(String[] args) { Client c = new Client(); Target t = new Adapter(); t.handleReq(); }

1

2

3

4

5

2.对象适配器方式

适配器类

/** * 适配器 (对象适配器方式,使用了组合的方式跟被适配对象整合) * (相当于usb和ps/2的转接器) * @author 波波烤鸭 * */ public class Adapter2 implements Target { private Adaptee adaptee; @Override public void handleReq() { adaptee.request(); } public Adapter2(Adaptee adaptee) { super(); this.adaptee = adaptee; } }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Java适配器模式(adapter)

20

测试

public static void main(String[] args) { Adaptee a = new Adaptee(); Target t = new Adapter2(a); t.handleReq(); }

1

2

3

4

5

工作中的场景

经常用来做旧系统改造和升级

如果我们的系统开发之后再也不需要维护,那么很多模式都是没必要的,但是不幸的是,事实却是维护一个系统的代价往往是开发一个系统的数倍。

JavaSE中使用到适配器模式的场景

java.io.InputStreamReader(InputStream)

java.io.OutputStreamWriter(OutputStream)

~适配模式比较简单,就介绍到这儿了

Java

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:模拟JVM的Young GC
下一篇:张小白树莓派4B踩坑记(六)使用USB摄像头
相关文章