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


  • 相关阅读:
    Linux 中如何用源代码安装软件,以及如何卸载它
    Linux 中的 Install命令
    PHP 常用header头定义
    如何防止重复提交表单?
    如何从二维数组中的多个key中获取指定key的值?
    jquery的ajax全局事件详解
    PHP+MySQL分页显示示例分析
    javascript中的事件类型
    事件委托/事件代理,
    彻底弄懂JS的事件冒泡和事件捕获
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5374870.html
Copyright © 2011-2022 走看看