设计模式-适配器模式

举报
AAAI 发表于 2021/05/08 00:42:07 2021/05/08
【摘要】 适配器模式 USB网线转换器 要被适配的类–网线 public class Adaptee{ public void request(){ // 返回上网 } } 12345 转接头口USB–接口 public interface NetToUSB{ // 接口转换器的抽象实现 // 作用:处理请求 public void handleRequest(); ...

适配器模式

USB网线转换器
在这里插入图片描述

要被适配的类–网线

public class Adaptee{ public void request(){ // 返回上网 }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

转接头口USB–接口

public interface NetToUSB{ // 接口转换器的抽象实现 // 作用:处理请求 public void handleRequest();
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

转接头–实现类–真正的适配器

  1. 继承,类适配器模式
// 使用USB,连接网线
public class Adapter extends Adaptee implements NetToUSB{ @override public void handleRequest(){ super.request();  // 可以上网,使用接口实现类处理上网请求。 }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2.组合(对象适配器)

// 使用USB,连接网线
public class Adapter1  implements NetToUSB{ private Adaptee adaptee; public Adapter1(Adaptee adaptee){ this.adaptee = adaptee;  // 可以给自定义的对象使用,热拔插式 } @override public void handleRequest(){ adaptee.request();  // 可以上网,使用接口实现类处理上网请求。 }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGZDQTXl-1620375461415)(E:\Markdown\JAVA\设计模式.assets\3-1Q1151046105A.gif)]

电脑类–客户端

public class Computer{ public void net(NetToUSB adapter){ // 上网找转接头连接网线 adapter.handleRequest(); }
}

 public static void main(String[] args){ Computer computer = new Computer(); //电脑 Adaptee adaptee = new Adaptee();  // 网线 // Adapter adapter = new Adapter();  // 转接器 Adapter1 adapter = new Adapter1(adaptee);  // 升级版转接器,传入自定义的网线 compute.net(adapter);
 }


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

应用:

  • 存在一个与现在系统不匹配的必需类。旧系统升级
  • 转换流:InputStreamReader
  • 输入输出字节,字符流
  • GUI,Springboot

文章来源: blog.csdn.net,作者:αβγθ,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_38022166/article/details/116496211

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。