• 初识设计模式之适配器模式


    一、为何要用适配器模式

    经过适配器模式设计后,可以使原本接口不匹配而无法一起工作的两个类能够在一起工作。就像我们平时充电时:假设当前我们手头只有Type-C,而我们要充电的设备充电端口是Micro-USB,此时我们就需要一个转接头,这个转接头就是本文描述的适配器。

    二、如何用适配器模式

    假设你刚买了一台设备,但是用的是Micro-USB的接口,然而你目前只有Type-C的数据线。在你万般无奈的时候,你突然想起家里有一个Type-C转Micro-USB的转接头……

    • 类适配器

      • TypeC类:即Type-C数据线

      • MicroUSB接口:即Micro-USB数据线

      • Adapter类:即转接头

      • Test类:测试转接头是否能用

        //Type-C数据线
        class TypeC{
        	
        	String desc = "Now we can charge with Type-C";
        	
        	public void chargeByTypeC() {
        		System.out.println(desc);
        	}
        	
        }
        
        //Micro-USB数据线
        interface MicroUSB{
        	
        	public void chargeByMicroUSB();
        	
        }
        
        //数据线转接头
        class Adapter extends TypeC implements MicroUSB{
        	
        	public void chargeByMicroUSB() {
        		super.chargeByTypeC();
        	}
        	
        }
        
        //测试
        public class Test {
        
        	public static void main(String[] args) {
        		//拿到一个数据线转接头
        		Adapter adapter = new Adapter();
        		//用这个转接头去把Type-C适配成Mirco-USB接口,如此这般我们的设备就可以充电了
        		adapter.chargeByMicroUSB();
        	}
        
        }
        
    • 对象适配器

      //Type-C数据线
      class TypeC{
      	
      	String desc = "Now we can charge with Type-C";
      	
      	public void chargeByTypeC() {
      		System.out.println(desc);
      	}
      	
      }
      
      //Micro-USB数据线
      interface MicroUSB{
      	
      	public void chargeByMicroUSB();
      	
      }
      
      //数据线转接头
      class Adapter implements MicroUSB{
      	
      	private TypeC typec;
      	
      	public Adapter(TypeC typec) {
      		this.typec = typec;
      	}
      	
      	public void chargeByMicroUSB() {
      		this.typec.chargeByTypeC();
      	}
      	
      }
      
      //测试
      public class Test {
      
      	public static void main(String[] args) {
      		//现在有一根Type-C数据线
      		TypeC typec = new TypeC();
      		//拿到一个数据线转接头
      		Adapter adapter = new Adapter(typec);
      		//用这个转接头去把Type-C适配成Mirco-USB接口,如此这般我们的设备就可以用Mirco-USB充电了
      		adapter.chargeByMicroUSB();
      	}
      
      }
      

      与类适配器所不同的时,这个的适配器类只需要实现Type-C接口,还在适配器的实现中做了些许改变。

  • 相关阅读:
    大于00
    today
    10
    面试题flask
    开发者日志
    7月22日一天学的东西
    资料
    3333
    2222
    1
  • 原文地址:https://www.cnblogs.com/xunxian/p/13619471.html
Copyright © 2020-2023  润新知