`
zhangwei_david
  • 浏览: 477061 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java 设计模式-适配器模式(Adapter)

 
阅读更多

       适配器模式,从名字就可以很好的理解该模式。 我们平时使用的电子产品的适配器,就是将我们的生活电压220v 转换为电子产品使用的5V电压。 原本220V电压的生活用电是没有办法作用在电子产品上的,可是我们增加了一个适配器后就可以完美的解决了这个问题。

   适配器模式(Adapter Pattern )就是把一个类的接口变换成用户期待的另一种接口,从而使原本因接口不匹配无法在一起工作的两个类可以在一起工作。

    适配器模式根据适配的类型可以分为接口适配和类与对象适配。

    接口适配: Target 是一个接口,Adaptee 是以及已经存在的类 Adapter 则需要实现Target接口同时需要继续已经存在的类。

    类与对象适配:通过继承Target类,利用现有的类满足所需要的方法。

/**
 * Apatee ,需要被适配的接口
 *  生活电压接口
 * @author zhangwei
 * @version $Id: LivingElectric.java, v 0.1 2014年9月23日 下午10:23:55 zhangwei Exp $
 */
public interface LivingElectric {

    /**
     * 返回生活用电的电压
     *
     * @return
     */
    public int getLivingElectric();

}
/**
 * Target: 这个是笔记本期待的电压接口
 * 笔记本的电压接口
 * @author zhangwei
 * @version $Id: NoteElectric.java, v 0.1 2014年9月23日 下午10:26:44 zhangwei Exp $
 */
public interface NoteElectric {

    /**
     * 获取笔记本的电压
     *
     * @return
     */
    public int getNoteElectric();

}
/**
 *Adapter 将生活电压转换为笔记本需要的电压
 * @author Lenovo
 * @version $Id: ElectricAdapter.java, v 0.1 2014年9月23日 下午10:29:16 Lenovo Exp $
 */
public class ElectricAdapter implements NoteElectric {

    private LivingElectric livingElectric;

    /**
     * @see com.cathy.demo.pattern.adapter.NoteElectric#getNoteElectric()
     */
    public int getNoteElectric() {

        return livingElectric.getLivingElectric() / 40;

    }

    public ElectricAdapter(LivingElectric livingElectric) {
        super();
        this.livingElectric = livingElectric;
    }

}
/**
 * 笔记本类
 * @author Lenovo
 * @version $Id: Note.java, v 0.1 2014年9月23日 下午10:29:34 Lenovo Exp $
 */
public class Note {
    NoteElectric power;

    public void setPower(NoteElectric noteElectric) {
        power = noteElectric;
    }

    public void use() {
        if (power.getNoteElectric() > 7 || power.getNoteElectric() <= 0) {
            throw new IllegalArgumentException("电压不匹配,无法工作");
        }
        System.out.println(MessageFormat.format("当前电压{0}V-符合工作条件开始工作", power.getNoteElectric()));
    }
}

 

/**
 *
 * @author zhangwei
 * @version $Id: Client.java, v 0.1 2014年9月23日 下午10:33:13 Lenovo Exp $
 */
public class Client {
    public static void main(String[] args) {
        Note note = new Note();
        // 连接电源
        note.setPower(new ElectricAdapter(new LivingElectric() {

            /**
             * 返回生活电压220V
             * @see com.cathy.demo.pattern.adapter.LivingElectric#getLivingElectric()
             */
            public int getLivingElectric() {
                return 220;
            }
        }));
        // 使用笔记本
        note.use();
    }
}

 

      运行的结果是:当前电压5V-符合工作条件开始工作

 

    

/**
 *
 * @author zhangwei
 * @version $Id: ChinaLivingElectirc.java, v 0.1 2014年9月24日 上午9:03:03 Lenovo Exp $
 */
public class ChinaLivingElectirc implements LivingElectric {

    /**
     * @see com.cathy.demo.pattern.adapter.LivingElectric#getLivingElectric()
     */
    public int getLivingElectric() {
        return 220;
    }

}
/**
 *
 * @author Lenovo
 * @version $Id: Adapter.java, v 0.1 2014年9月24日 上午9:02:10 Lenovo Exp $
 */
public class Adapter extends ChinaLivingElectirc implements NoteElectric {

    /**
     * @see com.cathy.demo.pattern.adapter.NoteElectric#getNoteElectric()
     */
    public int getNoteElectric() {
        return getLivingElectric() / 40;
    }

}
/**
 *
 * @author zhangwei
 * @version $Id: Client.java, v 0.1 2014年9月23日 下午10:33:13 Lenovo Exp $
 */
public class Client {
    public static void main(String[] args) {

        //
        Note note = new Note();
        // 连接适配器
        note.setPower(new Adapter());
        // 开始工作
        note.use();
    }
}

 

0
2
分享到:
评论

相关推荐

    java常用设计模式-适配器模式

    java常用设计模式-适配器模式 适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间进行通信。这种模式可以在不修改现有代码的情况下重用现有类,并且可以使不兼容的接口之间进行通信。 ...

    设计模式--适配器模式java例子

    在“设计模式--适配器模式java例子”中,我们可以假设有一个遗留的`OldLibrary`,它的接口与我们当前项目的需求不一致。例如,`OldLibrary`有一个`OldDevice`类,它有一个方法`oldMethod()`,而我们的新系统需要一个...

    讲故事,学(Java)设计模式-适配器模式Java开发Ja

    在这个“讲故事,学(Java)设计模式—适配器模式”的主题中,我们将深入探讨这个模式的原理、应用和优势。 适配器模式的核心思想是通过创建一个适配器对象,将原有接口转换为期望的接口,使得原本无法协同工作的类...

    23种设计模式--适配器模式

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,这种模式常被用来解决旧系统与新系统、第三方库或者不同组件之间的接口不匹配问题。适配器模式的核心思想是通过创建一个新的类...

    java设计模式之适配器模式

    适配器模式是一种在软件工程中广泛使用的结构型设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式扮演着重要的角色,尤其在处理遗留代码或者第三方库集成时,能够有效地解决接口不匹配的问题。...

    java设计模式---诙谐易懂版

    根据给定文件内容,以下是关于Java设计模式的知识点说明: 1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以...

    设计模式-适配器模式(讲解及其实现代码)

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在处理系统集成、遗留代码重用以及不同接口之间兼容性问题时。适配器模式的主要目的是将两个不兼容的接口融合在一起,使得原本无法直接协作...

    设计模式 - 适配器

    适配器模式(Adapter Pattern)是一种结构型设计模式,它允许两个不兼容的接口之间进行通信。在实际应用中,我们常常遇到这样的情况:一个系统需要使用现有的类,但其接口与系统的需求不匹配。适配器模式能解决这种...

    8.设计模式-适配器模式1

    适配器模式是一种软件设计模式,它允许不同的接口或类之间进行通信,即使它们的接口不兼容。适配器模式的核心思想是通过创建一个适配器类,将原有类的接口转换为客户期望的接口,从而使得原本无法协作的类能够协同...

    JAVA设计模式-chm版

    Java设计模式是软件开发中的一种最佳实践,它总结了在解决特定问题时程序员们经常采用的有效方法。这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的...

    设计模式实验报告-适配器模式.docx

    适配器模式(Adapter Pattern)是一种结构型设计模式,其主要目的是将一个类的接口变换成客户端所期待的另一种接口。通过这种方式,原本由于接口不兼容而无法一起工作的类可以顺利合作。适配器模式有两种实现方式:...

    【Java设计模式-源码】Java 中的适配器模式:无缝集成不兼容系统

    在 Java 开发中,适配器模式(Adapter Pattern)是一种非常有用的结构型设计模式,它可以帮助我们解决接口不兼容的问题,实现不同类之间的无缝集成。本文将详细介绍适配器模式的意图、解释、编程示例、适用场景、...

    JAVA设计模式---100%推荐

    这篇名为"JAVA设计模式---100%推荐"的资源,可能是对Java设计模式的深入解析,旨在帮助开发者更好地理解和应用这些模式。 设计模式通常分为三类:创建型、结构型和行为型。创建型模式涉及对象的实例化过程,如单例...

    java设计模式;适配器模式(类)

    在Java编程领域,设计模式是一种解决常见问题的模板或最佳实践,被广泛应用于软件开发中以提高代码的可重用性、可维护性和可扩展性。适配器模式(Adapter Pattern)是其中的一种,它允许两个不兼容的接口之间进行...

    设计模式结构型-适配器

    **适配器模式**(Adapter Pattern)属于结构型设计模式,它的目的是将一个接口转换成客户希望的另一个接口,从而使得原本由于接口不兼容而无法一起工作的那些类能够合作。适配器模式有两种形式:类适配器模式和对象...

    Java设计模式-图解-附代码

    ### Java设计模式详解 #### 一、概述 Java设计模式是一种在特定场景下解决软件设计问题的方法论。设计模式能够帮助开发者以一种更加系统化、标准化的方式来构建软件系统,提高软件的可维护性和可扩展性。本文档...

    Java设计模式之适配器模式

    ### Java设计模式之适配器模式详解 #### 引言 在软件开发中,我们经常遇到需要使用已有的类库,但这些类库的接口与我们的需求不匹配的情况。这时,适配器模式(Adapter Pattern)便能派上用场。适配器模式是一种...

    DesignPatternAdapter:Java 设计模式 - 适配器

    在软件工程中,设计模式是一种解决常见编程问题的模板,为了解决系统间接口不兼容的问题,适配器模式(Adapter Pattern)应运而生。Java 设计模式中的适配器模式是一种结构型模式,它使得原本由于接口不兼容而不能...

    设计模式之适配器模式Java实现和类设计图

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不兼容的接口之间进行通信。在这个Java实现中,我们将深入探讨适配器模式的两大类型:类适配器模式和对象适配器模式,并通过具体的代码示例和...

Global site tag (gtag.js) - Google Analytics