• Java的适配器模式


      所谓适配器模式,其实很简单,就是将一个类的接口转换成客户端所期待的另一个接口,使得原本不兼容的两个类可以一起工作。

      假设我们有一个Type-c接口,但是要使用的接口确实usb的接口,这时候要怎么办呢?解决方法就是用一个适配器将Type-c类转换成usb类,这样我们就能使用这个Type-c接口了。

      实现适配器模式有两种方法,分别是组合方式和继承方式。

      1.组合方式

      组合方式就是讲被适配的对象组合到适配器类中,在这里被适配对象就是就是Type-c接口。

      2.继承方式

      继承方式就是通过多重继承不兼容的接口以匹配目标接口。

      实现代码如下:

    Usb.java
    package com.muggle.Ada;
    
    public class Usb {
        public void useUsb() {
            System.out.println("使用了usb接口");
        }
    }
    
    
    Typec.java
    package com.muggle.Ada;
    
    public interface Tyepec {
        public void useTypec() ;
    }
    
    
    Adapter.java
    package com.muggle.Ada;
    //使用组合方式实现适配器模式
    public class Adapter implements Tyepec {
        private Usb plug;
    
        public   Adapter(Usb plug) {
            // TODO Auto-generated constructor stub
            this.plug=plug;
        }
                                                                                                                                                                                                                                                       
        @Override
        public void useTypec() {
            // TODO Auto-generated method stub
            plug.useUsb();
            System.out.println("完成转化使用了Type-c接口");
            
        }
    
    }
    
    newAdapter.java
    package com.muggle.Ada;
    
    public class newAdapter extends Usb implements Tyepec {
      //使用继承方式实现适配器模式  
        @Override
        public void useTypec() {
            // TODO Auto-generated method stub
            this.useUsb();
            System.out.println("完成转化使用了Type-c接口");
        }
    
    }
    
    TestDrive.java
    package com.muggle.Ada;
    
    
    public class TestDrive {
    
        public static void main(String[] args) {
            Tyepec tyepec=new Adapter(new Usb());
            tyepec.useTypec();
            
            Tyepec newtypec=new newAdapter();
            newtypec.useTypec();
        }
    
    }

      运行结果如下:

    使用了usb接口
    完成转化使用了Type-c接口
    使用了usb接口
    完成转化使用了Type-c接口

      这样我们就使用了适配器模式的两种方法对usb类进行了转换。

  • 相关阅读:
    Spring Boot:拦截器与过滤器
    [Locked] Maximum Size Subarray Sum Equals k
    [Locked] Generalized Abbreviation
    [Locked] Meeting Room I && II
    [Locked] Zigzag Iterator
    [Locked] Paint House I & II
    [Locked] Number of Connected Components in an Undirected Graph
    [Locked] Best Meeting Point
    [Locked] Sparse Matrix Multiplication
    [Locked] Two Sum
  • 原文地址:https://www.cnblogs.com/mugglean/p/8906209.html
Copyright © 2020-2023  润新知