zoukankan      html  css  js  c++  java
  • 适配器模式

    1 适配器模式基本介绍

    1)适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,

    让原本因接口不匹配不能一起工作的两个类可以协同工作

    2)适配器模式属于结构性模式

    3)主要分为3类:类适配器,对象适配器,接口适配器

    2 工作原理

    1、适配器模式:将一个类的接口转换成另一种接口,让原本不兼容的类可以兼容

    2、从用户的角度看不到被适配者,是解耦的

    3、用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法

    4、用户收到反馈结果,感觉是和目标接口交互

    3 类适配器模式

    1、类适配器模式简介

    基本介绍: Adapter类,通过继承被适配的类,实现适配接口,

    2、适配器模式实例

    将220v的电压转化为5v输出!

    clipboard

    代码实现

    //被适配者:
    public class Voltage220V {
        public int output220V(){
            int src =220;
            System.out.println("电压="+src+"伏");
            return src;
        }
    }
    //适配接口
    public interface IVoltage5V {
        public int transfer5V();
    }
    //适配器
    public class VoltageAdapter extends Voltage220V implements IVoltage5V{
        @Override
        public int transfer5V() {
            int srcV = output220V();
            int dstV =srcV/44;
            return dstV;
        }
    }
    //使用适配器的类,就将适配器聚合到该类中
    public class Phone {
    
        public void charging(IVoltage5V iVoltage5V){
            if(iVoltage5V.transfer5V()==5){
                System.out.println("电压为5v~ 可以充电!");
            }else{
                System.out.println("电压不等于5v~ 不可以充电!");
            }
        }
    }
    //测试
    public class Client {
        public static void main(String[] args) {
            System.out.println("类适配器模式~~~~~~~~~~");
            Phone phone =new Phone();
            phone.charging(new VoltageAdapter());
        }
    }

    clipboard

     

    4 对象适配器模式

    1、对象适配器模式基本介绍

    基本思路和类的适配器模式相同,只是适配器类,不再继承被适配的类,而是持有被适配类的实例

    2、对象适配器应用实例

    将220v的电压转化为5v输出!

    适配器的代码有稍微的区别:

    public class VoltageAdapter  implements IVoltage5V {
    
        private Voltage220V voltage220V;
    
        public VoltageAdapter(Voltage220V voltage220V) {
            this.voltage220V = voltage220V;
        }
    
        @Override
        public int transfer5V() {
            int dstV =0;
            if(voltage220V!=null){
                int srcV = voltage220V.output220V();
                dstV =srcV/44;
            }
            return dstV;
        }
    }

    5 接口适配器模式

    1、接口适配器模式介绍

    适用于一个接口不想使用其所有方法的情况

    当不需要全部实现接口提供的方法时,可以设计一个抽象类实现接口,并未该接口中的每个方法提供一个默认实现(空方法),那么该抽象类的子类可以有选择的覆盖父类的某些方法来实现需求

  • 相关阅读:
    路飞学城Python-Day142
    路飞学城Python-Day141
    路飞学城Python-Day140
    路飞学城Python-Day136
    路飞学城Python-Day137
    路飞学城Python-Day117
    java基础知识总结
    Maven
    MySql实现分页查询
    js中的正则表达式入门
  • 原文地址:https://www.cnblogs.com/houchen/p/13763511.html
Copyright © 2011-2022 走看看