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

    适配器模式核心思想:将A接口的对象转化成B接口的对象,使之从外观上看似是B对象。可是确实A对象在运行实际的业务逻辑。

    看到适配器模式的第一感觉就是:这也算个模式?就应该这样处理啊!

    生活中有非常多鲜活的样例,如网络适配器(网卡),调制解调器,数据线,充电器等等。

    其缺点就是。须要有这么一个额外的东西才干进行转换。

    适配器模式的优点:实现了良好的可扩展性和类复用性。

    以下给出一个简单的实例。将PS/2的键盘转接成USB接口。

    package adapterpattern;
    
    /**
     * PS键盘接口
     */
    public interface PS2 {
    
    	String A();
    
    	String B();
    
    	String C();
    }
    


    package adapterpattern;
    
    /**
     * USB键盘接口
     */
    public interface USB {
    
    	String A();
    
    	String B();
    
    	String C();
    }
    

    package adapterpattern;
    
    /**
     * PS2键盘
     */
    public class PS2Keyboard implements PS2{
    
    	@Override
    	public String A() {
    		return "PS@A";
    	}
    
    	@Override
    	public String B() {
    		return "PS@B";
    	}
    
    	@Override
    	public String C() {
    		return "PS@C";
    	}
    
    }
    

    package adapterpattern;
    
    /**
     * PS2转USB转换器
     */
    public class Adapter implements USB{
    
    	private PS2Keyboard keyboard;
    	
    	public Adapter(PS2Keyboard keyboard)
    	{
    		this.keyboard = keyboard;
    	}
    	
    	@Override
    	public String A() {
    		return keyboard.A();
    	}
    
    	@Override
    	public String B() {
    		return keyboard.B();
    	}
    
    	@Override
    	public String C() {
    		return keyboard.C();
    	}
    
    }
    

    package adapterpattern;
    
    public class Test {
    	
    	public static void main(String[] args) {
    		
    		USB usbKeyboard = new Adapter(new PS2Keyboard());
    		
    		System.out.println(usbKeyboard.A());
    		System.out.println(usbKeyboard.B());
    		System.out.println(usbKeyboard.C());
    	}
    }
    


    測试结果

    PS@A
    PS@B
    PS@C


  • 相关阅读:
    shell 读取文件内容 不以空格换行 再把每行的字符串切分取一部分
    Linux中basename和dirname命令的妙用
    Martiancloud 无注册中心微服务
    spring security自动续签功能
    访问c++类的私有成员
    Ubuntu 安装 docker 及 镜像加速
    谷歌浏览器表单自动填充颜色修改(antd)
    关于复制粘贴失效解决办法
    常见的HTTP状态码(HTTP Status Code)
    Linux 环境安装 MySQL
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5374870.html
Copyright © 2011-2022 走看看