美文网首页
设计模式8 - 适配器模式【Adapter Pattern】

设计模式8 - 适配器模式【Adapter Pattern】

作者: 阿甘兄 | 来源:发表于2019-08-26 14:00 被阅读0次

    适配器模式

    定义:
    将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。可分为类适配器模式对象适配器模式接口适配器模式

    类适配器模式 (把110V电源转为220V电源):

    /**
     * 110V电源
     */
      public interface Power110V {
    
          void work110V();
      }
    
      /**
        * 220V 电源
        */
       public interface Power220V {
    
           void work220V();
       }
        
    
       /**
        * 220V电源实现类
        */
       public class Power220VImpl implements Power220V {
    
    
           @Override
           public void work220V() {
               System.out.println("power 220V is working......");
           }
       }
        
       /**
       * 适配器:把110V电源转为220V电源
       */
       public class PowerAdapter extends Power220VImpl implements Power110V {
    
           @Override
           public void work110V() {
               work220V();//TODO 适配
           }
       }
    

    对象适配器模式:

        /**
         * 110V电源
         */
        public interface Power110V {
    
            void work110V();
        }
    
        /**
         * 220V 电源
         */
        public interface Power220V {
    
            void work220V();
        }
        
    
        /**
         * 自己领悟
         */
        public class PowerAdapter  implements Power110V {
            private Power220V mPower220V;
    
            public PowerAdapter(Power220V power220V) {
                mPower220V = power220V;
            }
            
            @Override
            public void work110V() {
                mPower220V.work220V();//TODO 适配
            }
        }
    
    

    接口适配器模式:

    
        /**
         * 多功能电源
         */
        public interface MutiplePower {
            void work12V();
    
            void work36V();
    
            void work110V();
    
            void work220V();
    
            void work380V();
        }
    
    
        /**
         * 多功能电源实现类
         */
        public abstract class MutiplePowerImp implements MutiplePower {
    
            @Override
            public void work12V() {
            }
    
            @Override
            public void work36V() {
            }
    
            @Override
            public void work110V() {
            }
    
            @Override
            public void work220V() {
            }
    
            @Override
            public void work380V() {
            }
        }
    
        /**
         * 但是我只想要220V电源和380V电源
         */
        public class CustomPower extends MutiplePowerImp {
            @Override
            public void work220V() {
                super.work220V();
            }
    
            @Override
            public void work380V() {
                super.work380V();
            }
        }
    
    

    总结:
    至于应用场景自己根据实际情况选择吧,反正说多了也不会去记。

    相关文章

      网友评论

          本文标题:设计模式8 - 适配器模式【Adapter Pattern】

          本文链接:https://www.haomeiwen.com/subject/ylirectx.html