您的位置 首页 java

Java设计模式之适配器设计模式

  1. 定义:将一个类的接口转成另一个类的接口, 适配器 模式可以将一个已有类转成另一个已有接口所需要的类,起到了适配的作用
  2. 上图上真相

类似如这种耳机转换头的就是一个适配器,type-c头是新手机所需要的接口,圆孔头耳机是老款耳机,耳机转换器就起到适配作用,废话不多说,上代码:

  • 定义一个Type-C耳机接口,后面手机需要用到这个接口
 /**
 * typec耳机接口
 *
 * @date 2022/10/24 9:28
 */
public interface TypeCHoleHeadset {

    /**
     * 提供type-c耳机头
     *
     * @return
     */
    String typecHeadphoneHead();
}  
  • 定义一个Type-C手机
 import java.util.Objects;

/**
 * type-c 手机
 *
 * @date 2022/10/24 9:26
 */
public class TypeCPhone {

    /**
     * 厂商手机听歌需要提供一个type-c接口的耳机
     *
     * @param typeCHoleHeadset
     */
    public void listen(TypeCHoleHeadset typeCHoleHeadset) {
        if (Objects.nonNull(typeCHoleHeadset)) {
            System.out.println("耳机已经正常插入了");
        }
    }
}
  
  • 定义一个圆孔耳机
 /**
 * 圆孔耳机
 *
 * @date 2022/10/24 9:25
 */
public class RoundHoleHeadset {

    /**
     * 圆孔耳机所提供的功能
     */
    public String roundHoleHead() {
        return "我提供了圆孔头";
    }
}  
  • 定义一个Type-C耳机实现类,等会适配器用用到这个适配器
 /**
 * @date 2022/10/24 9:35
 */
public class TypeCHoleHeadsetImpl implements TypeCHoleHeadset {
    @Override
    public String typecHeadphoneHead() {
        return "我提供了type耳机头";
    }
}  
  • 重点来了,定义一个适配器,来讲圆孔耳机转成Type-C耳机
 /**
 * 耳机适配器
 *
 * @date 2022/10/24 9:32
 */
public class HeadphonesAdapter {

    /**
     * 耳机转换接口,将圆孔耳机转成type-c耳机
     *
     * @param roundHoleHeadset
     * @return
     */
    public TypeCHoleHeadset adapter(RoundHoleHeadset roundHoleHeadset) {
        String holeHead = roundHoleHeadset.roundHoleHead();
        // ... 经过一些列骚操作
        return new TypeCHoleHeadsetImpl();
    }
}  
  • 恭喜你,学会适配器设计模式,测试一波
 /**
 * @date 2022/10/24 9:39
 */
public class Test {
    public  static  void main(String[] args) {

        //首先准备好一个typec手机,一个圆孔耳机
        TypeCPhone typeCPhone = new TypeCPhone();
        RoundHoleHeadset roundHoleHeadset = new RoundHoleHeadset();


        //定义一个适配器,将圆孔耳机转成typec耳机
        HeadphonesAdapter headphonesAdapter = new HeadphonesAdapter();
        TypeCHoleHeadset typeCHoleHeadset = headphonesAdapter.adapter(roundHoleHeadset);

        //将Type-C耳机插入Type-C手机
        typeCPhone.listen(typeCHoleHeadset);

    }
}  

一个超级简单的适配器模式完成,搞定

文章来源:智云一二三科技

文章标题:Java设计模式之适配器设计模式

文章地址:https://www.zhihuclub.com/200557.shtml

关于作者: 智云科技

热门文章

网站地图