JavaRush /Java 博客 /Random-ZH /《Head First 设计模式》一书的评论
Alex
第 37 级

《Head First 设计模式》一书的评论

已在 Random-ZH 群组中发布
在对《Head First》系列至少有一点了解的人中,有很多人认为此类文献对于初学者来说是相当肤浅的阅读。我能说的是,在 48 小时内不太可能深入研究编程领域的复杂主题。然而,很难说《设计模式》是一本对初学者有用的编程指南。这本书是 Stackoverflow 上最受欢迎的十本书之一,这是有充分理由的。简单的演示、基本的主题和高质量的示例使得这本书现在很受欢迎,而且在我看来,在未来的许多年里也会如此。 《Head First 设计模式》一书的评论 - 1

本书特色

Head First 设计模式告诉我们什么是模式、如何使用它们以及如何思考它们。模式是一个模板,是一组特定问题的通用解决方案。 反过来,设计模式是常用的架构解决方案,可用于编写用户友好且灵活的应用程序。世界各地的开发人员用相同的方法解决相同的问题。正如注释所说,如果您不想重新发明轮子,请使用现成的设计模板(模式),这本书致力于使用这些模板。另外,值得注意的是材料的呈现:Head First 系列的书籍以其简单性而闻名,并且可以一口气读完。《设计模式》也不例外。它还遵循以下关键原则:
  1. 能见度
  2. 对话式的演讲风格
  3. 大量插图
  4. 读者积极参与
  5. 诉诸情感
  6. 吸引读者的注意力
这本书的作者巧妙地运用元认知理论来呈现材料:对我来说,前 100 页在不知不觉中飞逝而过。这种方法的美妙之处在于大脑实际上会记住它所读到的内容。多种叙事风格、有趣的问题、冗余和创造力的结合——所有这些都有助于读者不失去对主题的兴趣。在购买这本书之前,我在阅读了褒贬不一的评论后犹豫了。然而,在快速浏览了有关该主题的其他几个来源后,我决定:要深入研究模式,这本书就是您所需要的。

主题和核心思想

“肯定有人已经解决了你的问题” ——这就是本书第一章的开头,传达了编程中设计模式的全部含义。主要目标是向读者正确传达它们的含义,因为首先,程序员必须知道模式的用途以及需要在什么时候应用它们。本质上,您首先需要在头脑中将模板分类为小块,然后才将它们实施到程序中。如果编程初学者对模式有很好的理解,那么它们的使用可能会使代码变得非常复杂(但应该会简化它!)。对于“为什么要使用设计模式?”这个问题 书中给出了明确的答案:“了解抽象、继承和多态性等概念并不能让你成为一名优秀的 OO 设计师。这些模式包含经过验证的 OO 设计经验。”

“概括”

本书分为14章加绪论。一开始,本书的作者试图让读者做好准备,调整他的大脑以正确感知有关图案设计的信息。第一章解释了模式的基本原理以及它们的用途。最常用的模式之一——策略——可以轻松、不引人注目地进行检查。第二章到第十一章专门对各个模式进行详细分析
  1. 观察者。将事件分发到对其发生感兴趣的对象之间。
  2. 装饰师。另一个视角是 Java 中的继承,以及在不修改代码的情况下赋予 Java 类新功能。
  3. 工厂。该模式使代码免于不必要的依赖。
  4. 单身的。也称为 Singleton,它允许您为整个程序创建单个类对象。
  5. 团队。该模式允许您方便地封装方法调用,扩展其功能。
  6. 适配器和外观。解决接口不兼容的问题,以及封装对象以简化其接口。
  7. 模板法。算法块的封装,允许子类随时关联所需的处理算法。
  8. 迭代器和链接器。该模式提供了一个方便的工具来迭代集合,无论其类型如何。此外,本章还提供了一些有关超级集合的信息。
  9. 状态。对象被赋予了通过改变其内部状态来控制其行为的能力。
  10. 副。用于控制对对象的访问的非常方便的模式。
第 12 章研究了复合模式,或者更确切地说是所讨论的一些模式的组合,它们可用于构建强大的软件架构。第13章专门讨论模式在实际问题中的使用,介绍了模式的分类、种类和使用指南。本书是第 14 章的附录,涵盖了更广泛的模式。它们中的每一个都有其自己的用途,因此了解它们是非常值得的。当然,它们不像第 2 章到第 11 章中的模式那么流行,但这并没有使它们变得不那么有用。这本书并不自诩为模式理论的学术上准确的表述。但如果 Head First 书籍如此细致,有抱负的开发人员将没有机会自己弄清楚什么是什么并澄清基础知识。对于那些不熟悉设计模式的人来说,这是一种简单方便的学习设计模式的方法。 作者表示,《Design Patterns》适合那些已经熟悉 Java(或 C#)、想要学习面向对象设计原理、并且喜欢生动对话而不是枯燥讲座的人。这本书不是参考书!如果您是一位具有经验的专业开发人员,并且至少使用过这些模式的一部分,那么您不太可能对这本书感兴趣。本书的一个重要组成部分是练习:你不应该跳过它们。如果你仔细阅读这本书,并在极端情况下在互联网上进行最少的搜索,解决这些问题不会给你带来麻烦。但肯定会有好处。至少,你会更深入地理解书中提出的理论。

的优点和缺点

我和许多在 JavaRush 学习的人一样,对枯燥的讲座、死记硬背的材料以及其他对学生求知心理的暴力行为持冷漠的态度。在我看来,花在记忆难以理解的文本上的精力最好花在寻找替代的学习来源上。这本书是一本值得你花时间和精力的书。出色的演示风格、对读者注意力的有效管理以及要点的重复构成了本书的主要优势——易于吸收材料。大量插图是一个额外的优点。在我看来,书中的每张图片都有它的作用:它们都可以让你强化作者的话,更深入地理解材料的本质。正如我上面所写,这本书不是一本参考书:它的作者并不打算列出所有模式。它的主要任务是提供理解并讨论基本模式,以便其他更复杂的模式更容易理解。她百分百应付这个问题。缺点之一是俄语的 Head First 设计模式不像英语那样容易阅读。当然,每个开发人员都应该会说英语,但是新手程序员并不总是将这种技能发展到可以阅读原著书籍的程度。然而,这可以被认为是强制减分,因为材料的呈现非常准确并且含义得到了保留。

有关设计模式的其他书籍

我支持这样一种信念:最好从多个来源研究基本主题并从中寻找合适的演示风格。当你想深入研究模式并阅读更多理论时,相信我,你晚上会有事可做。
  1. 面向对象的设计技术。设计模式(Gamma E.、Helm R.、Johnson R.、Vlissides J.)。

    《设计模式》(Head First Design Patterns)一书评述 - 2

    这是一本比较严肃的出版物,一本模式参考书,一本来自“四人帮”的非常受人尊敬的书。许多人称其为面向对象设计的圣经。

    在互联网上,开发者的意见分为3个阵营:

    • 有些人认为这本书已经过时,而且其呈现风格让人无法阅读
    • 其他人建议仅将本书用作模式参考书,仅此而已
    • 还有一些人说这本书是设计模式的圣杯,任何想要有一天成为高级 Java 开发人员的人都应该阅读这本书
    我是第二类的追随者:我认为这本书确实很有价值,但是为了发展而不是为了搜索任何信息而阅读它是非常困难的。

    重要的:书中的例子是用C++编写的。

  2. Java EE。专业人士的设计模式(Murat Yener、Alex Fidom)。

    《设计模式》(Head First Design Patterns)一书评述 - 3

    本书致力于企业应用程序的设计:它涵盖了现实生活中应用程序问题的许多示例。

  3. Java 中的设计模式(Grand M.)。

    《设计模式》(Head First Design Patterns)一书评述 - 4

    本书生动地演示了模式的使用如何节省开发人员的时间,提供了 UML 语言的概述,并描述了 47 种设计模式。

JavaRush 中的设计模式

在 JavaRush 课程中,设计模式是在Java Collections 任务的第 7 级学习的。第 1课和第 2课专门讨论最常见的模式,在第 4课中您可以解决有关该主题的问题。以下是一些“增强自己”的有趣文章:
  1. 关于模式主题的一般性文章,其中包含类别、示例以及我们喜欢的一切。

  2. 两篇关于模式的文章:第 1 部分概述和更详细的第 2 部分

  3. 设计模式以Singleton模式为例。

  4. 关于“策略”和“适配器”模式的文章。

  5. 设计模式的概念与 UML 图相关,本文将帮助您理解它们是什么。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION