zoukankan      html  css  js  c++  java
  • 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.分析

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

  • 相关阅读:
    C++中 extern "C" 的两种用法
    第5章类和对象(一)
    第4章 函数和作用域
    第5章类和对象(一)
    第5章类和对象(一)续
    C++中 extern "C" 的两种用法
    extern用法详解(转)
    第4章 函数和作用域
    IOS开发中一些尺寸问题
    键盘处理IOS
  • 原文地址:https://www.cnblogs.com/yangyunnb/p/6478309.html
Copyright © 2011-2022 走看看