java中Adapter适配器模式

Love The Way You Lie 2022-04-04 15:53 267阅读 0赞

一.引言:

  1. 类适配器与对象适配器的使用场景一致,仅仅是实现手段稍有区别,二者主要用于如下场景:
  2. 1)想要使用一个已经存在的类,但是它却不符合现有的接口规范,导致无法直接去访问,这时创建一个适配器就能间接去访问这个类中的方法。
  3.  2)我们有一个类,想将其设计为可重用的类(可被多处访问),我们可以创建适配器来将这个类来适配其他没有提供合适接口的类。
  4. 以上两个场景其实就是从两个角度来描述一类问题,那就是要访问的方法不在合适的接口里,一个从接口出发(被访问),一个从访问出发(主动访问)。
  5. 接口适配器使用场景:
  6. 1)想要使用接口中的某个或某些方法,但是接口中有太多方法,我们要使用时必须实现接口并实现其中的所有方法,可以使用抽象类来实现接口,并不对方法进行实现(仅置空),然后我们再继承这个抽象类来通过重写想用的方法的方式来实现。这个抽象类就是适配器。

二.代码实践:

1.随意的创建两个接口,并声明不同的方法

  1. /**
  2. * Created by ${ligh} on 2018/12/17 下午8:15
  3. */
  4. public interface TwoHoleSocket {
  5. public void sayTwoHello();
  6. }
  7. /**
  8. * Created by ${ligh} on 2018/12/17 下午8:15
  9. */
  10. public interface ThreeHoleSocket {
  11. public void sayThreeHello();
  12. }

2.目的是能通过Two接口调用Three中的方法,因此创建一个类实现Three接口:

如何将一个接口转换为另一个接口?

  1. 答案是采用适配器模式。适配器就是一个接口转换器,在生活中无处不在,我们最常见的就是电源适配器了,它可以在两孔插座和三孔插座之间起到转换的作用。虽然用户看见的是两孔插座,但是经过适配器的转换后,实际为用户提供服务的是三孔插座。
  2. /**
  3. * Created by ${ligh} on 2018/12/17 下午8:17
  4. */
  5. public class BullThree implements ThreeHoleSocket{
  6. @Override
  7. public void sayThreeHello() {
  8. System.out.println("Using three holes ... ");
  9. }
  10. }

3.创建Two的适配器类:

  1. /**
  2. * Created by ${ligh} on 2018/12/17 下午8:16
  3. */
  4. public class TwoToThreeAdapter implements TwoHoleSocket{
  5. ThreeHoleSocket threeHoleSocket;
  6. public TwoToThreeAdapter() {
  7. //构造方法中创建ThreeHoleSocket,以及其实现类
  8. threeHoleSocket = new BullThree();
  9. }
  10. @Override
  11. public void sayTwoHello() {
  12. //真正掉方法的是Three调用的
  13. threeHoleSocket.sayThreeHello();
  14. }
  15. }

4.测试:

public class User {
public static void main(String[] args) {
TwoToThreeAdapter twoToThreeAdapter = new TwoToThreeAdapter();
twoToThreeAdapter.sayTwoHello();
}
}

打印结果:
在这里插入图片描述

以上就是简单的适配器模式…

发表评论

表情:
评论列表 (有 0 条评论,267人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Adapter模式适配器模式

    模式简介 适配器模式在生活中也比较常见,例如我们的手机充电头就是一个适配器,我们无法将家庭电源直接与手机进行连接,因为这可能带来较大的安全隐患,并且也不太便利,所以我们需

    相关 适配器模式Adapter

    网上看到不少关于适配器模式的讲解,其中对于适配器模式解释的过于专业,一时不是特别理解适配器模式到底是用来干嘛的,具体的适用场景在哪,其最精髓的地方到底在哪。 本文结合自己的理

    相关 适配器模式adapter

    适配器模式的定义: 将一个类的接口转换成客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能在一起的那些类可以一起工作。 主要分为三类:类的适配器模式、

    相关 适配器模式Adapter

    “适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。” 适配器模式主要通过继承、对象组合来实现适配器功能,

    相关 适配器模式adapter

    适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先