我们来说下适配器模式。
一、什么是适配器模式
大家在买笔记本电脑时,都会有一个电源适配器,不知道你们注意过没,它叫适配器。为什么不直接一个电源线搞定呢?这就是问题。
我们知道,我们国家使用的是220V的电压,而其他国家中有使用110V电压的,那如果电脑的电源线不用适配器会出现什么情况?我们的电脑因为电压低开不了机。这样,适配器的作用就显示出来了。大家仔细看下电脑的电源适配器,它上面有一个输入电压范围(我的是100V-240V),而输出电压是固定的(我的是19.5V)。这样,就能让我们不管在什么地方,都能正常使用电脑。
所以,什么是适配器模式呢?
就是将一个类的接口转换为客户希望的另外一个接口。适配器模式将原本由于接口不兼容而不能一起工作的那些类可以一起工作。
这也就说明了一点,适配器模式只是一个中间转换器。它主要应用于希望复用一些现存的类,但是接口又与复用环境不一致的情况。
二、适配器模式的结构
我们看下适配器模式的结构图。
在适配器模式中,我们通过增加一个新的适配器类(Adaper类)来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。
根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或实现)关系。
模式所涉及的角色有:
● 目标(Target)角色:定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。
● 适配器(Adaper)角色:适配器类是本模式的核心,在对象适配器中,它通过继承Target并关联一个Adaptee对象使二者产生联系。
● 源(Adapee)角色:适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类一般是一个具体类,包含了客户希望使用的业务方法,在某些情况下可能没有适配者类的源代码。
三、适配器模式使用举例
我们现在的笔记本电脑都是三相电插头,假如我们去了一个地方,只有两相电插座,怎么办?只能用转换头去适配转换了。
原有二相电插座类:
package com.zhaodf.pattern.AdapterPattern; public class TwoPhaseElectricalSocketAperture { public void twoPhaseElectricalSocketCharge(){ System.out.println("使用两相电充电"); } }
我们只有三相电插头(我们的目标接口,对外提供的):
package com.zhaodf.pattern.AdapterPattern; //这是我们的目标接口,因为用户只有三相电插头,我们只能提供三相电充电接口 public interface ThreePhaseElectricalJack { void charge(); }
适配器转换:
package com.zhaodf.pattern.AdapterPattern; //我们的适配器 public class Adapter implements ThreePhaseElectricalJack{ private TwoPhaseElectricalSocketAperture twoPhaseElectricalJack; public Adapter(){ this.twoPhaseElectricalJack = new TwoPhaseElectricalSocketAperture(); } public void charge() { System.out.println("通过转换器进行适配,将三相电插头转换为二相电插头"); twoPhaseElectricalJack.twoPhaseElectricalSocketCharge(); } }
客户端:
package com.zhaodf.pattern.AdapterPattern; public class Client { public static void main(String[] args){ ThreePhaseElectricalJack threePhaseElectricalJack = new Adapter(); threePhaseElectricalJack.charge(); } }
结果:
相关推荐
### Java设计模式详解 #### 一、概述 Java设计模式是一种在特定场景下解决软件设计问题的方法论。设计模式能够帮助开发者以一种更加系统化、标准化的方式来构建软件系统,提高软件的可维护性和可扩展性。本文档...
适配器模式(Adapter Pattern)是一种常用的设计模式,其主要目的是让两个不兼容的接口能够协同工作。通过引入一个适配器,可以将现有类的接口转换成客户端期望的另一个接口,从而使原本由于接口不兼容而不能一起工作...
### Java设计模式之适配器模式详解 #### 结构型模式概述 在软件工程领域,设计模式被视为一种标准解决方案,用于解决在特定上下文中经常出现的问题。设计模式按其目的和适用场景,大致可分为三种类型:创建型模式...
Java设计模式是软件开发中的一种最佳实践,它总结了在解决特定问题时程序员们经常采用的有效方法。这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的...
Java设计模式详解合集是一份宝贵的资源,包含了丰富的面向对象设计原则和多种设计模式的深入讲解。这份资料旨在帮助开发者提升软件设计能力,遵循良好的编程实践,提高代码的可读性、可维护性和复用性。以下是其中...
Java设计模式详解涵盖了在Java编程中广泛使用的一些经典设计模式。这些模式不仅有助于提高代码的可读性、可维护性和可扩展性,还能促进团队之间的沟通与协作。下面,我们将深入探讨几个重要的Java设计模式。 1. ...
在Java编程中,有23种经典的GoF(Gang of Four)设计模式,它们被分为三大类:创建型、结构型和行为型。本资源集合了这些模式的详细解释与源码分析,旨在帮助开发者深入理解和应用设计模式。 1. 创建型模式...
### Java设计模式详解 #### 一、背景与概念 在软件工程领域,设计模式是一种用于解决常见问题的可重用解决方案。《Java设计模式PDF》是一本由James W. Cooper编写的经典书籍,该书详细介绍了Java编程语言中的设计...
### Java设计模式之适配器模式详解 #### 引言 在软件开发中,我们经常遇到需要使用已有的类库,但这些类库的接口与我们的需求不匹配的情况。这时,适配器模式(Adapter Pattern)便能派上用场。适配器模式是一种...
Java中的23种设计模式是软件工程中非常重要的概念,它们是解决常见编程问题的成熟解决方案,被广泛应用于各种复杂的软件系统中。这些模式在不同的上下文中提供了可重用的结构和行为,使得代码更加清晰、可维护和扩展...
### Java设计模式的应用 #### 一、引言 在当今快速发展的软件开发领域,Java作为一门功能强大且灵活的语言,不仅拥有丰富的API资源,还能与强大的数据库系统无缝对接。这使得许多开发人员能够以模块化的形式构建...
内容包括统一建模语言基础知识、面向对象设计原则、设计模式概述、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式、适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、...
" JAVA 设计模式概述" JAVA 设计模式是指在软件设计过程中,为了提高代码的可维护性、灵活性和可扩展性所使用的一些惯用解决方案。JAVA 设计模式可以分为三种:创建模式、结构模式和行为模式。 1. 创建模式 创建...
《Java设计模式实战详解》 在Java编程领域,设计模式是一种通用、可重用的解决方案,用于解决在软件设计中常见的问题。这个压缩包“java-design-patterns-master”显然是一个专注于Java设计模式的学习资源,旨在...
Java设计模式详解 Java设计模式是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 设计模式的六大原则...
在Java中,"JAVA设计模式.mobi"这本书可能涵盖了如下设计模式的详细讲解: 1. 单例模式:保证一个类只有一个实例,并提供全局访问点。在Java中,有多种实现单例的方式,包括饿汉式、懒汉式、双重检查锁定(Double-...
主要介绍了JAVA设计模式之适配器模式的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解