首页 > 其他 > 详细

设计模式之适配器模式

时间:2022-05-27 20:51:12      阅读:7      评论:0      收藏:0      [点我收藏+]

适配器模式

  • 适配器模式典型应用场景:电脑 网线 转接头
  • 代码实现关键点 网线对象、电脑对象、适配接口、适配接口实现、客户端测试例,实现代码如下:
  1. 网线对象实现上网功能
package com.gof23.adapter1;

/**
 * 网线
 */
public class Adaptee {
    public void net(){
        System.out.println("网线上网");
    }
}
  1. 适配接口,usb转接方法
package com.gof23.adapter1;
/**
 * 适配器接口
 */
public interface AdapterInf {
    public void net2usb();
}
  1. 适配器实现
    3.1. 适配实现,继承被适配类,称为类适配器模式
package com.gof23.adapter1;

/**
 * 类适配器模式,继承被适配类的
 */
public class Adapter1 extends Adaptee implements AdapterInf {

    @Override
    public void net2usb(){
        super.net();
    }
}

3.2. 适配实现组合被适配的对象,称为对象适配器模式

package com.gof23.adapter1;

/**
* 对象适配器模式,将被适配的对象用组合的方式
*/
public class Adapter implements AdapterInf {
  private  Adaptee adaptee;

  Adapter(Adaptee adaptee){
      this.adaptee = adaptee;
  }

  @Override
  public void net2usb(){
      adaptee.net();
  }
}
  1. 电脑通过适配实现上网
package com.gof23.adapter1;

/**
 * 电脑
 */
public class Computer {
    private AdapterInf adapterInf;

    Computer(AdapterInf adapterInf){
        this.adapterInf = adapterInf;
    }
    public void net(){
        adapterInf.net2usb();
    }
}
  1. client端测试电脑上网
package com.gof23.adapter1;

/**
 * 客户端测试
 */
public class Client {
    public static void main(String[] args) {
        Adaptee adaptee = new Adaptee();
        AdapterInf adapter = new Adapter(adaptee);
        Computer computer = new Computer(adapter);
        computer.net();
    }
}

设计模式之适配器模式

原文:https://www.cnblogs.com/lwdesire/p/15350025.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!