`
sunnylocus
  • 浏览: 880066 次
  • 性别: Icon_minigender_1
  • 来自: 美国图森
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多

  如果现在有一台使用12V直流电的笔记本电脑,要将插头接到220V的交流电电源,直接接到电源我想笔记本要报销了。你需要用到一个交流电适配器(AC Adapter)。交流电适配器能够将家用的220V交流电转换成我们需要的12V直流电。适配器的功能就是介入原有电源和需要的电源之间,作为沟通的桥梁。适配器的原文是adapter,代表"适合"的意思。

     在程序设计中我们也需要用到“适配器”,如果原有的内容无法直接利用时,通常要转换成必要的类型后再使用,实现转换功能的就是

Adapter Pattern

 

    Adapter Pattern分为两种情况:

  •     类的Adapter Pattern(继承)
  •     对象的Adapter Pattern(委托)

下面的程序使用类的Adapter Pattern输出字符串"$Hello$"和"*Hello*"

 程序示例1

  1.Print接口,可以看成我们需要的内容

package com.pattern.adapter;

public interface Print {
	public abstract void printWeak();
	public abstract void printStrong();
}

   2.原有的内容

package com.pattern.adapter;

public class Banner {
	private String string;
	public Banner(String string) {
		this.string = string;
	}
	
	public void showWithParen() {
		System.out.println("$"+string+"$");
	}
	
	public void showWithAster() {
		System.out.println("*"+string+"*");
	}
}

  3.适配器,将原有的内容转换成我们需要的

package com.pattern.adapter;

/**
 * 适配器类
 * @author administrator
 */
public class PrintBanner extends Banner implements Print {
	
	public PrintBanner(String string) {
		//调用父类的构造函数
		super(string);
	}
	//输出减弱的字符串
	public void printStrong() {
		showWithParen();
	}
	//输出加强的字符串
	public void printWeak() {
		showWithAster();
	}

}

  4.测试类

package com.pattern.adapter;

public class Main {
	public static void main(String[] args) {
		Print p =new PrintBanner("Hello");
		//输出减弱字符
		p.printWeak();
		//输出加强字符
		p.printStrong();
	}
}

 

  从Main类的源代码中完全看不出有Banner类,showWithParen(),showWtihAster()方法,好象只有人给笔记本电脑提供12V直流电,根据不知道它的原形(Adapter适配器的另一端)竟然是220V的交流电!

 

 下面的代码采用对象的委托实现程序示例1的功能

  程序救命2:

  1.注意这里的Print不再是接口,而是抽象类

package com.pattern.adapter;

public abstract Print {
	public abstract void printWeak();
	public abstract void printStrong();
}

  2.适配器,采用对象委托模式

package com.pattern.adapter;

/**
 * 适配器类
 * @author administrator
 */
public class PrintBanner extends Print {
	private Banner banner;
	public PrintBanner(String string) {
		this.banner = new Banner(string);
	}
	//输出减弱的字符串
	public void printStrong() {
		banner.showWithParen();
	}
	//输出加强的字符串
	public void printWeak() {
		banner.showWithAster();
	}
}

 

 

   测试类同上

  

  设计思想:

     把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。

分享到:
评论
1 楼 foolsheep 2008-08-29  
引用
如果原有的内容无法直接利用时,通常要转换成必要的类型后再使用,

你这个例子没法体现出这个"无法直接利用"这一点,有没有更好的例子!

相关推荐

    java设计模式之适配器模式

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

    Java设计模式适配器模式代码架构

    Java设计模式中的适配器模式(Adapter Pattern)是一种结构型设计模式,它的主要目的是将不兼容的接口转换为用户期望的接口,使原本由于接口不兼容而无法一起工作的类能够协同工作。适配器模式有两种形式:类适配器...

    java 汽车适配器(Adapter适配器模式)

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式被广泛应用于解决系统间的兼容性问题,尤其是当我们需要将一个已有的类库或者对象与我们的系统接口相匹配时。汽车适配器的...

    设计模式之适配器Adapter

    标题“设计模式之适配器Adapter”暗示我们将深入探讨适配器模式的核心概念和应用场景。适配器模式通常应用于以下场景: 1. 当系统中存在一个已经存在的类,其接口不符合新需求时,可以使用适配器模式来调整接口,使...

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

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

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

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

    Java设计模式之Adapter适配器模式

    Java设计模式之Adapter适配器模式 Java设计模式之Adapter适配器模式是一种结构型设计模式,主要用于解决不同接口之间的不兼容问题,使得原本由于接口不兼容不能一起工作的那些类可以一起工作。Adapter模式的主要...

    Java设计模式之适配器模式

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

    设计模式——适配器模式(adapter)

    适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是解决系统中的接口不兼容问题,使得原本由于接口不匹配而无法一起工作的类能够协同工作。在本文中,我们将深入探讨适配器模式的概念、结构、作用...

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

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

    设计模式之适配器模式

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...

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

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

    设计模式中的适配器设计模式

    java中的适配器模式,Adapter设计模式(包装器)23种设计模式之一

    设计模式之适配器模式(Adapter Pattern)

    适配器模式是软件设计模式中的一种,它的主要目的是解决接口不兼容问题,使得原本由于接口差异无法协同工作的类能够协同工作。在实际的软件开发过程中,我们常常遇到这样的情况:旧有的系统或第三方库提供了丰富的...

    java设计模式之适配器模式(Adapter)

    适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是解决接口不兼容问题,使得原本因为接口差异无法协同工作的类能够协同工作。在Java中,适配器模式通常分为类的适配器模式和对象的适配器模式。 ...

    java设计模式之适配器模式.zip

    适配器模式是一种在软件设计中广泛使用的结构型设计模式,它的主要目的是使不兼容的接口之间能够进行通信。...适配器模式是Java开发者必备的设计模式之一,掌握它能帮助你更好地构建可扩展和可维护的系统。

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    Java设计模式是软件工程中的一种最佳实践,它总结了在特定场景下解决常见问题的经验,为程序员提供了可重用的解决方案。本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与...

    《Java设计模式》课后答案-刘伟.rar

    《Java设计模式》是刘伟教授的一本关于设计模式的教材,主要面向高等学校的学生和对Java编程有深入兴趣的开发者。设计模式是软件工程中的一种重要思想,它封装了在特定场景下的问题解决方案,可以提高代码的可读性、...

    java中适配器模式案例

    适配器模式是一种设计模式,它允许不兼容的类或接口之间进行通信,通过创建一个适配器类作为中间桥梁,使得原本不匹配的接口能够协同工作。在Java中,适配器模式广泛应用于系统集成、旧代码复用以及第三方库的兼容性...

Global site tag (gtag.js) - Google Analytics