设计模式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();
        }
    }

总结:

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


目录
相关文章
|
9月前
|
设计模式 前端开发 Java
【设计模式】【结构型模式】适配器模式(Adpter)
一、入门 什么是适配器模式? 适配器模式是Java中常用的结构型设计模式,它的核心作用就像现实中的电源转换器一样---让原本不兼容的两个接口能够协同工作。 为什么要用适配器模式? 假设我们需要在电商系
240 10
|
设计模式 Java 开发者
「全网最细 + 实战源码案例」设计模式——适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,通过引入适配器类将一个类的接口转换为客户端期望的另一个接口,使原本因接口不兼容而无法协作的类能够协同工作。适配器模式分为类适配器和对象适配器两种,前者通过多重继承实现,后者通过组合方式实现,更常用。该模式适用于遗留系统改造、接口转换和第三方库集成等场景,能提高代码复用性和灵活性,但也可能增加代码复杂性和性能开销。
523 28
|
11月前
|
设计模式 Java 数据安全/隐私保护
Java 设计模式:装饰者模式(Decorator Pattern)
装饰者模式属于结构型设计模式,允许通过动态包装对象的方式为对象添加新功能,提供比继承更灵活的扩展方式。该模式通过组合替代继承,遵循开闭原则(对扩展开放,对修改关闭)。
|
设计模式 JSON 前端开发
前端必须掌握的设计模式——适配器模式
适配器模式是一种结构型设计模式,用于使接口不兼容的对象能够相互合作。通过在客户端和系统之间引入一个“中间层”适配器,将不同类型的输入数据转换为系统能处理的标准格式,减轻系统的负担,提高扩展性和可维护性。例如,MacBook的扩展坞将多种接口(如HDMI、USB)转换为Type-C接口,实现多接口兼容。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
这篇文章详细解释了工厂模式,包括简单工厂、工厂方法和抽象工厂三种类型。每种模式都通过代码示例展示了其应用场景和实现方法,并比较了它们之间的差异。简单工厂模式通过一个工厂类来创建各种产品;工厂方法模式通过定义一个创建对象的接口,由子类决定实例化哪个类;抽象工厂模式提供一个创建相关或依赖对象家族的接口,而不需要明确指定具体类。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
|
设计模式 Java
设计模式--适配器模式 Adapter Pattern
这篇文章介绍了适配器模式,包括其基本介绍、工作原理以及类适配器模式、对象适配器模式和接口适配器模式三种实现方式。
|
设计模式 Java
Java设计模式之适配器模式
这篇文章详细讲解了Java设计模式中的适配器模式,包括其应用场景、实现方式及代码示例。
261 0
|
9月前
|
设计模式 Java 数据库连接
【设计模式】【创建型模式】工厂方法模式(Factory Methods)
一、入门 什么是工厂方法模式? 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法模式使类的实例化延迟
285 16
|
9月前
|
设计模式 负载均衡 监控
并发设计模式实战系列(2):领导者/追随者模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第二章领导者/追随者(Leader/Followers)模式,废话不多说直接开始~
275 0
|
9月前
|
设计模式 监控 Java
并发设计模式实战系列(1):半同步/半异步模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第一章半同步/半异步(Half-Sync/Half-Async)模式,废话不多说直接开始~
300 0