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.分析

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

  • 相关阅读:
    题解+补题
    信息安全导论期末复习
    Codeforces Round #104 (Div.2)
    中国计量大学现代科技学院第四届“中竞杯”程序设计校赛(同步赛)
    第一章练习-1
    【练习】购物车程序
    【转】Python中设置输出文字的颜色
    字符串,列表,元组,字典间的互相转换
    【转】Python Enhancement Proposal #8【PEP8】
    【转】pycharm的一些快捷键
  • 原文地址:https://www.cnblogs.com/yangyunnb/p/6478309.html
Copyright © 2011-2022 走看看