java23种设计模式之适配器模式

上一节说到单例模式:https://blog.csdn.net/zhanglei082319/article/details/88370309

     单例模式: 保证一个类有且仅有一个实例,并且提供一个访问它的全局访问点。

     今天我们说说一种新的设计模式类型:组合类型之适配器模式

     还是从手机生产工厂这个案例说起,我们知道手机的零件有很多,比如液晶屏、 触摸屏、 机壳、 保护膜、 电池、螺丝等等。这么多零件都需要生产,或者代理生产。如果有一天在生产苹果手机的过程中,突然发现苹果手机螺丝零件没了,机器坏了,但是工厂不可能因为螺丝没了就停止生产,那么怎么办呢。

      最简单的办法:使用其他手机的螺丝零件,但是其他手机的螺丝零件并不能直接使用。

      这里就需要使用到适配器模式。

      代码如下:

/**
 * 苹果生产工厂
 */
public class IPhoneFactoryAdaptor extends IPhoneFactory{

     //华为生产工厂
     private HuaWeiFactory huaWeiScrew;

     //vivo生产工厂
     private VivoFactory  vivoScrew;

     /**
      * 生产苹果手机螺丝
      */
     public Screw  getIPhoneScrew(){
          //先从自己工厂中生产
          Screw iphoneScrew = super.getIPhoneScrew();
          //如果生产失败,没有库存了
          if(iphoneScrew == null){
               //从华为工厂中拿
               iphoneScrew = huaWeiScrew.getHuaWeiScrew();
               if(iphoneScrew == null){
                    //从vivo工厂中拿
                    iphoneScrew = vivoScrew.getVivoScrew();
               }
          }
          return iphoneScrew;
     }
}

        当前的适配器模式,是一种对象类型的适配器模式,也是俗称的组合类型。适配器模式又3中实现方式,继承方式,组合方式,接口实现方式,个人比较推荐组合方式。

        这里以工厂级别为例,苹果手机工厂在生产螺丝时,发现代理商无法按时发货,或者自己无法生产。获取不到螺丝的情况下,会从华为工厂中去拿,再没有从vivo工厂中去拿,最后适配成自己的螺丝,进行返回。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值