几个步骤让你学会JAVA的适配器模式

AVA设计模式之一适配器模式
适配器模式
首先我们要了解到什么是适配器,然后我们用适配器能干嘛,生活中常见的例子。

适配器模式就是把两个互不关联的东西通过适配器来关联使用
用适配器可以节省代码重复量,后期维护便利,且符合人的逻辑思维
充电宝+安卓的数据线+想要充苹果手机
这里的例子是以(Computer)电脑,(Adapter)转接头,(Adaptee)网络源为例子,(NetToUsb)是符合人的逻辑思维,接口类

Computer.java
[Java]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
package 适配器模式;
public class Computer {
     //目标程序
  //电脑需要连接上转接器才可以上网,传一个转接头
  public void net(NetToUsb adapter) {
   //上网的方法需要一个转接头
   adapter.handleRequest();
   
  }
  public static void main(String[] args) {
   // TODO 自动生成的方法存根
            //电脑,适配器,网络
   Computer computer= new Computer(); //电脑
   
   Adapter adapter= new Adapter(); //转接适配器
   
   Adaptee adaptee= new Adaptee(); //网络
   computer.net(adapter);
  }
}

NetToUsb.java
[Java]  纯文本查看  复制代码
?
1
2
3
4
5
package 适配器模式;
public interface NetToUsb {
  //作用:处理请求让网线连接到电脑Usb
  public void handleRequest();
}

Adapter.java第一种是靠单一继承关系,有局限性,只能对应一个专属的目标网络,换了地方办公连接别人网线无法实现
[Java]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
package 适配器模式;
//1.继承(类适配器,单继承)
//2.组合(对象适配器:常用)
public class Adapter extends Adaptee implements NetToUsb {
  //真正的适配器,   需要连接到源程序的网线和电脑的usb
  @Override
  public void handleRequest() {
   super .Request();
  }
}

Adapter2.java第二种是传的对象,比如要的网络源,我们传一个网络对象,只要有网络类也就是有网络的地方可以传进来就能让电脑上网
[HTML]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
package 适配器模式;
//1.继承(类适配器,单继承)
//2.组合(对象适配器:常用)
public class Adapter2  implements NetToUsb {
  //真正的适配器,   需要连接到源程序的网线和电脑的usb
  //传对象,就不用像继承一样只能固定网线,可以随处办公
  private Adaptee adaptee;
  public Adapter2(Adaptee adaptee) {
   this.adaptee=adaptee;
  }
  @Override
  public void handleRequest() {
   adaptee.Request();
  }
}

学设计模式的初衷:
1.能够发散且让你设计代码的时候更有逻辑
2.能够在面试中起到作用
3.能够读懂某些源码,例如Springboot里有大量适配器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值