zoukankan      html  css  js  c++  java
  • 初识设计模式之适配器模式

    一、为何要用适配器模式

    经过适配器模式设计后,可以使原本接口不匹配而无法一起工作的两个类能够在一起工作。就像我们平时充电时:假设当前我们手头只有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接口,还在适配器的实现中做了些许改变。

  • 相关阅读:
    也谈谈关于WEB的感想
    spring boot,https,双向ssl认证
    Spring Cloud Gateway(二)
    Spring Cloud Gateway(一)
    .Net Web Service 自定义返回值命名
    随便记一下,C#并行环境操作Winform的代码段
    随便记一下,解决Windows Server 2012无法远程登录的方法
    记录C#控件DataGridView绑定BindingList无法排序问题(转)
    记录SQL Server 2019链接Oracle 11g R2的过程
    Json CPP 中文支持与入门示例
  • 原文地址:https://www.cnblogs.com/xunxian/p/13619471.html
Copyright © 2011-2022 走看看