适配器模式,从名字就可以很好的理解该模式。 我们平时使用的电子产品的适配器,就是将我们的生活电压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(); } }
相关推荐
java常用设计模式-适配器模式 适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间进行通信。这种模式可以在不修改现有代码的情况下重用现有类,并且可以使不兼容的接口之间进行通信。 ...
在“设计模式--适配器模式java例子”中,我们可以假设有一个遗留的`OldLibrary`,它的接口与我们当前项目的需求不一致。例如,`OldLibrary`有一个`OldDevice`类,它有一个方法`oldMethod()`,而我们的新系统需要一个...
在这个“讲故事,学(Java)设计模式—适配器模式”的主题中,我们将深入探讨这个模式的原理、应用和优势。 适配器模式的核心思想是通过创建一个适配器对象,将原有接口转换为期望的接口,使得原本无法协同工作的类...
适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,这种模式常被用来解决旧系统与新系统、第三方库或者不同组件之间的接口不匹配问题。适配器模式的核心思想是通过创建一个新的类...
适配器模式是一种在软件工程中广泛使用的结构型设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式扮演着重要的角色,尤其在处理遗留代码或者第三方库集成时,能够有效地解决接口不匹配的问题。...
根据给定文件内容,以下是关于Java设计模式的知识点说明: 1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在处理系统集成、遗留代码重用以及不同接口之间兼容性问题时。适配器模式的主要目的是将两个不兼容的接口融合在一起,使得原本无法直接协作...
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许两个不兼容的接口之间进行通信。在实际应用中,我们常常遇到这样的情况:一个系统需要使用现有的类,但其接口与系统的需求不匹配。适配器模式能解决这种...
适配器模式是一种软件设计模式,它允许不同的接口或类之间进行通信,即使它们的接口不兼容。适配器模式的核心思想是通过创建一个适配器类,将原有类的接口转换为客户期望的接口,从而使得原本无法协作的类能够协同...
Java设计模式是软件开发中的一种最佳实践,它总结了在解决特定问题时程序员们经常采用的有效方法。这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的...
适配器模式(Adapter Pattern)是一种结构型设计模式,其主要目的是将一个类的接口变换成客户端所期待的另一种接口。通过这种方式,原本由于接口不兼容而无法一起工作的类可以顺利合作。适配器模式有两种实现方式:...
在 Java 开发中,适配器模式(Adapter Pattern)是一种非常有用的结构型设计模式,它可以帮助我们解决接口不兼容的问题,实现不同类之间的无缝集成。本文将详细介绍适配器模式的意图、解释、编程示例、适用场景、...
这篇名为"JAVA设计模式---100%推荐"的资源,可能是对Java设计模式的深入解析,旨在帮助开发者更好地理解和应用这些模式。 设计模式通常分为三类:创建型、结构型和行为型。创建型模式涉及对象的实例化过程,如单例...
在Java编程领域,设计模式是一种解决常见问题的模板或最佳实践,被广泛应用于软件开发中以提高代码的可重用性、可维护性和可扩展性。适配器模式(Adapter Pattern)是其中的一种,它允许两个不兼容的接口之间进行...
**适配器模式**(Adapter Pattern)属于结构型设计模式,它的目的是将一个接口转换成客户希望的另一个接口,从而使得原本由于接口不兼容而无法一起工作的那些类能够合作。适配器模式有两种形式:类适配器模式和对象...
### Java设计模式详解 #### 一、概述 Java设计模式是一种在特定场景下解决软件设计问题的方法论。设计模式能够帮助开发者以一种更加系统化、标准化的方式来构建软件系统,提高软件的可维护性和可扩展性。本文档...
### Java设计模式之适配器模式详解 #### 引言 在软件开发中,我们经常遇到需要使用已有的类库,但这些类库的接口与我们的需求不匹配的情况。这时,适配器模式(Adapter Pattern)便能派上用场。适配器模式是一种...
在软件工程中,设计模式是一种解决常见编程问题的模板,为了解决系统间接口不兼容的问题,适配器模式(Adapter Pattern)应运而生。Java 设计模式中的适配器模式是一种结构型模式,它使得原本由于接口不兼容而不能...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不兼容的接口之间进行通信。在这个Java实现中,我们将深入探讨适配器模式的两大类型:类适配器模式和对象适配器模式,并通过具体的代码示例和...