`
amanhu
  • 浏览: 13012 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

迭代器模式与组合模式(二) —— Head First设计模式学习

 
阅读更多

在上篇文章中,printMenu()的实现的几个问题,在这篇文章中,予以解决。

首先问题的原因是什么?很明显,不同的collection类型,煎饼屋菜单使用的是ArrayList,而餐厅的菜单使用的是数组。

代码的区别如下

  • ArrayList 和 数组的元素遍历:

如果我们使用迭代器,上面的代码就变成了:

  • 在ArrayList上使用迭代器

  • 在数组上使用迭代器

我们可以看到,在数组上和在ArrayList上使用迭代器的代码完全一致。(或许迭代器失去了collection本身的一些特性,比如ArrayList和数组通过下标来存取元素。但是迭代器本身就是为了遍历而存在)。

接下来,使用迭代器模式(Iterator Pattern)来改写代码。

迭代器接口:

餐厅菜单迭代器:

餐厅菜单,什么都不需要修改,只是增加一个createIterator()方法。

女招待类中,现在只需要一个循环即可。

分享到:
评论

相关推荐

    Head First 设计模式 (九) 迭代器与组合模式(Iterator & Composite pattern) C++实现

    迭代器模式(Iterator Pattern)和组合模式(Composite Pattern)是设计模式中的两种重要结构型模式,它们在软件设计中有着广泛的应用。这两种模式都属于GoF(Gang of Four)设计模式,旨在解决特定的问题,提升代码...

    Head First设计模式(完整高清版).pdf

    《Head First设计模式》是一本深受开发者喜爱的经典书籍,它以独特且易于理解的方式介绍了设计模式这一复杂的概念。设计模式是软件开发中的经验总结,是解决常见问题的有效模板,可以帮助我们编写更灵活、可维护和可...

    Headfirst(九)迭代器模式

    总的来说,Headfirst的第九章通过迭代器模式的讲解,让读者了解如何在C++中使用这种模式,同时通过UML类图帮助理解类与类之间的关系,使得设计模式的学习更加直观易懂。掌握迭代器模式,对于编写高效、可维护的代码...

    HeadFirst 组合模式+迭代器错误原因以及解决代码

    《HeadFirst JAVA设计模式》中利用迭代器迭代组合模式存在错误,课本中实现代码对于大于两层的树状测试数据存在错误(即Menu里有Menu),这里给出原错误测试代码(compositeIter包)和错误解决代码(solveIter包)。

    [中文]Head-First设计模式.pdf

    《Head-First设计模式》是一本面向初学者的优秀设计模式教程,主要针对Java编程语言。这本书通过易于理解的方式介绍了23种经典的GoF设计模式,帮助开发者提升代码的可复用性和可维护性。设计模式是软件工程中的重要...

    Head First设计模式和HeadFirst in java 源码以及23种设计模式关系图

    总的来说,这个压缩包包含的资源可以帮助你深入理解设计模式,通过《HeadFirst设计模式》和《HeadFirst in Java》的源码,你可以学习到如何在实际项目中应用这些模式。而UML类图则提供了直观的视角,便于你把握设计...

    head first设计模式学习代码

    《Head First设计模式学习代码详解》 设计模式是软件工程中的宝贵经验总结,它提供了一套通用的解决方案模板,帮助开发者在面对复杂问题时能够快速有效地进行设计和开发。Head First设计模式是一本非常受欢迎的设计...

    Head.First设计模式_PDF

    《Head First设计模式》是一本深受开发者欢迎的设计模式学习书籍,以其独特的教学方式,通过丰富的图解和幽默的叙述,使复杂的设计模式概念变得生动易懂。这本书主要讲解了面向对象设计中的23种经典设计模式,是软件...

    [中文]Head-First设计模式

    《Head-First设计模式》是设计模式领域内一本广受欢迎的入门书籍,以其独特的视觉呈现方式和易懂的讲解风格,让初学者也能快速理解并掌握设计模式的精髓。设计模式是软件工程中的一种最佳实践,是解决常见编程问题的...

    headfirst设计模式

    《Head First设计模式》是一本深受开发者欢迎的设计模式教程,以其独特的视觉呈现方式和易于理解的语言,让初学者也能快速掌握设计模式的核心概念。这本书深入浅出地介绍了23种GOF(GoF,Gamma、Erich、Johnson、...

    HeadFirst设计模式英文版

    《Head First 设计模式》的英文版是一本面向初学者的设计模式入门书籍,它以幽默风趣的文风,深入浅出地介绍了软件设计中经常使用的设计模式。设计模式是一套被反复使用、多数人知晓、经过分类编目、代码设计经验的...

    Head First设计模式 源代码

    《Head First设计模式》是一本深受开发者喜爱的设计模式学习书籍,它以易懂、生动的方式讲解了23种经典的设计模式。源代码是书中理论知识的实践体现,可以帮助读者更深入地理解并应用这些模式。这里我们将围绕这些...

    HeadFirst设计模式JAVA版源码

    《HeadFirst设计模式JAVA版源码》是一份深入学习设计模式的重要资源,它基于流行的编程语言Java,旨在帮助开发者理解并应用设计模式于实际项目中。设计模式是软件工程中的重要概念,它代表了在特定场景下解决问题的...

    Head First设计模式官方原码

    《Head First设计模式》是一本深受开发者欢迎的设计模式学习书籍,以其独特的教学方式,通过丰富的图解和幽默的语言,帮助读者深入理解设计模式的核心概念。这本书的官方源码提供了书中所讲解的每个设计模式的实际...

    Head First设计模式(含目录)

    《Head First设计模式》是一本深受程序员喜爱的书籍,它以独特的方式讲解了设计模式这一核心的编程概念。设计模式是软件开发中的经验总结,是解决常见问题的有效模板,可以帮助开发者编写可维护、可扩展、易理解的...

    head first 设计模式,英文版

    《Head First设计模式》是一本深受开发者欢迎的设计模式教程,英文版为读者提供了全面而深入的理解,适合那些对设计模式充满兴趣并愿意投入精力去学习的朋友们。设计模式是软件工程中的重要概念,它们是解决常见问题...

    Head First 设计模式 扫描版

    《Head First 设计模式》是软件开发领域内一本广受欢迎的书籍,由Eric Freeman、Elisabeth Robson、Bert Bates和Kathy Sierra四位作者共同撰写。这本书以其独特的视觉风格和易于理解的教学方法,深入浅出地介绍了...

    HeadFirst设计模式(中文高清版)

    《HeadFirst设计模式》是一本深受开发者喜爱的设计模式学习书籍,中文高清版的出现使得国内读者可以更加方便地理解和掌握这一领域的重要知识。设计模式是软件工程中经过长期实践总结出来的一种解决常见问题的可复用...

    HeadFirst设计模式(高清中文版)

    《HeadFirst设计模式》是一本深受开发者欢迎的设计模式教程,其高清中文版为读者提供了方便易懂的学习资源。这本书深入浅出地介绍了23种经典的设计模式,旨在帮助Java程序员提升软件设计能力,理解并应用这些模式来...

Global site tag (gtag.js) - Google Analytics