• 6.适配器设计模式


    public interface PinPlug{
        void charge();
    }
    

      

    1.概述

    适配器设计模式针对如下情况:-----客户需要用某个接口,但是能提供服务的接口没有实现那个接口。

    • 客户端只能使用某种接口---客户端是台灯,接口是双孔插座
    • 服务端----服务类是三孔插座
    • 适配器类是服务类和客户端中间的一个桥接类---插线板

    2.代码

    适配器模式的分类:

    • 类适配器----通过继承实现
    • 对象适配器--通过组合实现

    2.1类适配器

    • 功能描述:为台灯充上电照明(台灯只能使用双孔插座)
    • public interface PinPlug{
          void charge();
      }
      
    • 1.描述:与台灯配套的插座接口

    • public class ThreePinPlug{
          public void specialcharge(){
              System.out.println("三孔插座充电");
          }
      }  
    • 2.描述:不能直接使用的三孔插座
    • public class PinPluginAdapter extends ThreePinPlug implements PinPlug{
          public void charge(){
              System.out.println("两孔桥接");
              super.specialcharge();
          }
      }  
    • 3.通过继承的方式创建一个把三孔转换为两空的类
    • public class Lamp {
          private PinPlug pinPlug;
          public Lamp(){
              this.pinPlug=new PinPluginAdapter();
          }
      
          public void Lignting() {
              if (pinPlug!=null) {
                  pinPlug.charge();
                  System.out.println("照明");
              }else{
                  System.out.println("没电");
              }
          }
      
          public static void main(String[] args){
              Lamp lamp=new Lamp();
              lamp.Lignting();
          }
      }
    • 4.客户端:台灯

    2.2对象适配器---组合的方式

    • public class PinPluginAdapter implements PinPlug{
          ThreePinPlug threePinPlug=new ThreePinPlug();
          public void charge(){
              System.out.println("两孔桥接");
              threePinPlug.specialcharge();
          }
      }  

    3.分析

    配器模式不适合在详细设计阶段使用它,它是一种补偿模式,专用来在系统后期扩展、修改时所用。

  • 相关阅读:
    hdu5616 暴力枚举
    codeforce 35C fire again
    常用代码及经验总结(不断更新)
    codeforce AIM tech Round 4 div 2 B rectangles
    codeforce diversity
    codeforce 589B枚举
    codeforces 1A
    自学Java测试代码
    自学Jav测试代码三 Math类 & Date & GregorianCalendar类
    数学类与图形类
  • 原文地址:https://www.cnblogs.com/yangyunnb/p/6478309.html
Copyright © 2020-2023  润新知