`

设计模式回顾之五:适配器模式(Adapter)

 
阅读更多

设计模式回顾系列文章: 主要针对工作中常用常见的设计模式进行整理、总结,同时分享以供大家拍砖。

------------------------------------------------

适配器模式:

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。

大致是说:我们需要一种方式,为一个功能正确但接口不合的对象创建一个新接口。

实现时,将原有类包含在另一个类之中,让包含类与需要的接口匹配,调用被包含类的方法。

 

程序实现:

适配器EnumerationIterator,用于将Enumeration类适配为Iterator的接口使用方式。 

 

public class EnumerationIterator implements Iterator{
	private Enumeration enumeration;
	public EnumerationIterator(Enumeration e){
		this.enumeration=e;
	}
	public boolean hasNext(){
		return enumeration.hasMoreElements();
	}
	public Object next(){
		return enumeration.nextElement();
	}
	public void remove(){//Enumeration没有删除功能
		throw new UnsupportedOperationException();
	}
}

 

 程序入口类:

 

public static void main(String[] args){
		Hashtable table=new Hashtable();
		table.put("a", 1);
		table.put("b", 2);
		table.put("c", 3);
		table.put("d", 4);
		table.put("e", 5);
		Enumeration enumeration=table.elements();//获取Enumeration
		EnumerationIterator ei=new EnumerationIterator(enumeration);//适配为Iterator
		while(ei.hasNext()){//使用Iterator接口方式遍历和获取数据
			 System.out.println(ei.next());
		}
		try{
			ei.remove();
		}catch(UnsupportedOperationException e){
			System.out.println("Enumeration Can't Remove!!!");
		}
		
}

 

举例:Java IO类库中的InputStream和Reader类的适配器InputStreamReader类,以及OutputStream和Writer类的适配器OutputStreamWriter类。

 

分享到:
评论

相关推荐

    《设计模式:可复用面向对象软件的基础》英文版

    《设计模式:可复用面向对象软件的基础》是一本由Erich Gamma、Richard Helm等四位国际知名的软件工程师共同编写的经典之作,该书提供了面向对象软件设计中常用的模式,并通过具体的案例解释了这些模式如何帮助解决...

    李建忠 C#面向对象设计模式纵横谈(25):设计模式总结

    在第25讲中,他集中对整个系列进行了一次全面的总结,让我们一起来回顾和探讨这些设计模式的核心要点。 设计模式是经过实践验证的、在特定场景下解决常见问题的最佳解决方案。它们是面向对象设计的智慧结晶,通过...

    11-回顾和总结(1).html

    在书中,作者们将这二十三种设计模式分成了三类,分别是创建型模式、结构型模式和行为型模式。 创建型模式包含了: 工厂方法模式( Factory Method ) 抽象工厂模式( Abstract Factory ) 单例模式( Singleton ...

    C#设计模式.PDF

    在本章节中,作者可能会回顾面向对象编程的基本概念,如封装、继承、多态等,并为后面介绍的设计模式奠定理论基础。 ### 2. 设计模式举例 这部分内容将通过具体的例子来介绍设计模式的应用场景,帮助读者理解不同...

    java设计模式迷你手册.rar

    Java设计模式迷你手册是一部浓缩了Java编程领域中设计模式精华的参考书,旨在帮助开发者理解和应用这些模式,提升代码质量和可维护性。设计模式是软件工程中...总之,掌握Java设计模式是提升编程技能的关键步骤之一。

    C#设计模式大全

    在深入探讨设计模式之前,我们首先回顾C#中的面向对象特性: 1. **封装**:通过将数据和操作这些数据的方法封装在一个类中来实现。 2. **继承**:允许创建一个新的类继承现有类的属性和行为。 3. **多态**:同一个...

    设计模式解析习题解答,已经做好目录标签

    最后,第25章是对全书的回顾和总结,指出设计模式的实践意义及其在软件设计中的重要开端。 这本书全面地涵盖了设计模式的基础知识,不仅适合初学者入门,也对经验丰富的开发者有很高的参考价值,有助于提升软件设计...

    精典设计模式

    《精典设计模式》文档包含了丰富的软件开发中的设计模式知识,涵盖了C++和C#两种主流编程语言的应用。设计模式是解决软件设计中常见问题的经验总结...定期回顾和实践设计模式,将使你在软件开发的道路上更加得心应手。

    侯捷2015设计模式课件-同济

    首先,设计模式课件回顾了面向对象编程(Object-Oriented Programming,OOP)的基本原则,如封装、继承和多态,这些是设计模式依赖的基础。 接下来,课程深入讨论了GoF的设计模式。这些模式可以分为三类: 1. 创建...

    追MM与23种设计模式

    适配器模式是一种结构型设计模式,它作为两个不兼容接口之间的桥梁。例如,当你喜欢的女孩有着完全不同的兴趣爱好时,你可能需要改变自己的一些习惯或行为,以便更好地适应她的喜好,从而拉近彼此的距离。 #### 7. ...

    PetStore 中EJB 的设计模式

    在深入探讨PetStore中企业JavaBeans(EJB)的设计模式之前,我们先来简要回顾一下什么是EJB以及为何要在PetStore这样的应用程序中使用它们。EJB是Java平台的一部分,用于构建可移植、健壮、可重用的应用程序组件。...

    算法导论 DesignPatterns Gof

    在最后一章中,作者们回顾了设计模式的发展历程,展望了未来可能的发展方向,并鼓励更多的软件工程师参与到模式社区中来。此外,书中还提供了一些基础类的定义和相关术语的解释,为读者提供了更全面的学习资源。 ...

    DesignPatterns:回顾在软件体系结构和设计课程中看到的设计模式

    设计模式是软件工程中的一种重要概念,它是在特定上下文中解决常见问题的模板或最佳实践。在Java开发中,设计模式的应用广泛且至关重要,因为它们能够提高代码的可读性、可维护性和可复用性。本篇文章将深入探讨在...

    Design Patterns Java Workbook - Addison Wesley

    ### 设计模式在Java开发中的应用 #### 一、引言 《Design Patterns Java Workbook》是一本面向中级至高级Java开发者的重要参考书籍。本书由Steve Metsker撰写,并于2002年由Addison Wesley出版社出版。它以一种实践...

    design-patterns-learn:设计模式学习

    对于经验丰富的开发者,它可以作为回顾和巩固设计模式知识的工具。 总之,"设计模式学习"项目旨在帮助开发者掌握Java设计模式,提高编程技巧,以便在实际开发过程中写出更高质量、更具弹性的代码。通过深入学习并...

    Applied Java Patterns (English)

    本书首先简要回顾了设计模式的基本概念,然后提供了30种模式的详细介绍,其中包括了Sun Certified Enterprise Architect考试中的23个核心模式。这些模式被组织成四大类: 1. **创建型模式**:关注对象的创建机制,...

Global site tag (gtag.js) - Google Analytics