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

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

适配器模式

定义:

将一个类的接口转换成客户希望的另外一个接口。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();
        }
    }

总结:

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


目录
相关文章
|
2月前
|
设计模式 Java 程序员
Java设计模式-适配器模式(8)
Java设计模式-适配器模式(8)
|
2月前
|
设计模式
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
这篇文章详细解释了工厂模式,包括简单工厂、工厂方法和抽象工厂三种类型。每种模式都通过代码示例展示了其应用场景和实现方法,并比较了它们之间的差异。简单工厂模式通过一个工厂类来创建各种产品;工厂方法模式通过定义一个创建对象的接口,由子类决定实例化哪个类;抽象工厂模式提供一个创建相关或依赖对象家族的接口,而不需要明确指定具体类。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
|
1月前
|
设计模式 Java
Java设计模式之适配器模式
这篇文章详细讲解了Java设计模式中的适配器模式,包括其应用场景、实现方式及代码示例。
40 0
|
2月前
|
设计模式 Java
设计模式--适配器模式 Adapter Pattern
这篇文章介绍了适配器模式,包括其基本介绍、工作原理以及类适配器模式、对象适配器模式和接口适配器模式三种实现方式。
|
3月前
|
设计模式 XML 存储
【六】设计模式~~~结构型模式~~~适配器模式(Java)
文章详细介绍了适配器模式(Adapter Pattern),这是一种结构型设计模式,用于将一个类的接口转换成客户期望的另一个接口,使原本不兼容的接口能够一起工作,提高了类的复用性和系统的灵活性。通过对象适配器和类适配器两种实现方式,展示了适配器模式的代码应用,并讨论了其优点、缺点以及适用场景。
|
4月前
|
设计模式 Go 数据处理
iLogtail设计模式问题之在iLogtail中,为何需要使用适配器模式
iLogtail设计模式问题之在iLogtail中,为何需要使用适配器模式
|
4月前
|
设计模式 JavaScript 前端开发
js设计模式【详解】—— 适配器模式
js设计模式【详解】—— 适配器模式
30 0
|
6天前
|
设计模式 安全 Java
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
9天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###