zoukankan      html  css  js  c++  java
  • 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类进行了转换。

  • 相关阅读:
    个人7天冲刺计划
    团队项目开发个人周计划
    满足NABC的软件创意
    关于二维数组相邻元素和的最大值问题的探讨
    敏捷软件开发综述
    关于开发方法的综述
    二维数组的子数组求最大值问题
    电梯调度实施
    小组作业提交报告
    模拟卷链接
  • 原文地址:https://www.cnblogs.com/mugglean/p/8906209.html
Copyright © 2011-2022 走看看