`

Head First Design Pattern - 0 - Introduction

阅读更多
很难想象一本写Design Pattern的书会在Amazon排行榜上雄踞半年之久,但是《Head First Design Pattern》做到了。我曾经狂搜过这本书的电子版,但是只有一个数码相机照下来的版本,很不爽,后来因为写论文的原因,就去买了一本影印版来看,一发 而不可收拾。真的是好书!

任何一个读过GOF的《Design Pattern》的人都会因为书中所写的蹩脚的措词和一大堆道理而感到头皮发麻,我也是这样。而后出版的许多Design Pattern相关的书,要么是扩展了经典的设计模式,要么是对经典的设计模式加以解释和实现。那么,是什么让《Head First Design Pattern》如此特别?答案是因为它的生动、幽默以及巧妙的写作方式。

生动、幽默以及巧妙的写作方式,这是大家都有所耳闻的,让我们来看看具体情况如何。

生动
记得《Design Pattern》是如何介绍一个设计模式的吗?对,一个名字,一个目的,一个应用场景,一堆描述和解释,一堆UML,一堆优缺点,一个实现,等等等等。头大了吗?让我们来看看《Head First Design Pattern》是如何做的:
        1.    介绍一个简单的程序,它的功能和它的结构。
        2.    一个需求变更来了,程序员要对源代码做出改变,问题出现了,该怎么改?
        3.    变更是很“简单”的,程序员很快改好了,但是紧接着出现了问题,修改引起了其他不正确的行为。
        4.    客户在抱怨,老板在骂人。(想想一下许多美国式幽默的出现吧~)
        5.    问题再次出现,该怎么改?
        6.    作者给出一个解决方案,并问读者:“你觉得如何?”
        7.    细心的读者会给出自己的思考:“不错,但是仍然不是最好的办法,它在这里有缺陷。”
        8.    OK,作者和读者一起改进了解决方案,效果很好。(注意是一起。)
        9.    翻过一页纸,读者发现一排巨大的字:“恭喜你!你已经学到的××设计模式!”
怎么样?有没有一种震撼的感觉?原来学习设计模式可以这样!

幽默
只需要举两个小例子。
Preface中讲述这本书是为谁写的Section,作者列举了应该看和不应该看这边书的人。在那一页的页脚有一行手写的注释“note from marketing : this book is for anyone who has a credit card.”
作者在讲述abstract method时写到“It really sucks to be an abstract method because you don't have a body.”边上是一个人头放在桌子上,没有身体。

巧妙的写作方式
Preface中用了很多的篇幅介绍本书的写作方式和它的好处,比如:图比文字更让人容易理解和记忆,对话式的写作方法更能帮助读者理解内容,等等。作者对这些写作方式的侃侃而谈让我怀疑他们是否都具有心理学和人体生物学的学历--竟然对人的学习能力了解到这个地步!

我不喜欢买书,更不喜欢推荐别人买书,因为书太贵,而且中国出版的书质量又不好。我只是想说,这本书确实很特别,我从没读过一本写成这样的技术书籍--它 就像你的邻居和你聊天一样,却能把设计模式最核心的东西教给你。更神气的是,读的速度会明显比其他书快,但是学到的东西却更多更深刻记忆得更牢固!真希望 所有的书都是这个样子!
分享到:
评论

相关推荐

    架构师必看的书籍清单

    1. 《Head First Design Patterns》:最好的 GOF23 经典设计模式讲解。 2. 《Patterns of Enterprise Application Architecture--企业应用架构模式》:Martin Fowler 经典。 3. 《Analysis Patterns: Reusable ...

    java.核心技术.第八版 卷1

    When it first came out in 1996 it had no competitors, and now alternatives abound, in particular the "Head First" series for learning Java published by O'Reilly and Associates. However, this is still...

    design_patterns

    design_patterns(设计模式)Design Patterns In PythonDesign Patterns Introduction(设计模式介绍)Strategy Pattern(策略模式)实现:design_patterns/strategy.py示例:examples/strategy_example.pyObserver ...

    C# Game Programming Cookbook for Unity 3D - 2014

    1.1.3 Using the Singleton Pattern in Unity...........................5 1.1.4 Inheritance.................................................6 1.1.5 Where to Now?.............................................

    cmd-bat-批处理-脚本-Progress bar 1.zip

    cmd-bat-批处理-脚本-Progress bar 1.zip

    小红书2024年度Java编程开发面试题及参考答案-超详细解析

    该资源是小红书 2024 年度Java 编程开发面试题,内容非常详细,适合应届毕业生和准备寻求更高发展的Java工程师,希望给你们带来帮助。

    RISC-V指令集五级流水线CPU设计与验证:基于Verilog的实现及应用 CPU设计

    内容概要:本文详细介绍了基于RISC-V指令集的五级流水线CPU设计及其验证过程。首先,文章阐述了RISC-V指令集的特点及其在CPU设计中的优势,接着深入解析了每个流水线阶段(取指、解码、执行、访存、写回)的Verilog源代码实现。此外,提供了汇编验证代码用于测试CPU的功能,并附带详细的说明文档和PPT,确保设计的完整性和易理解性。最后,在Vivado平台上进行了全面的仿真和实际硬件测试,验证了设计的正确性和性能。 适合人群:从事嵌入式系统设计、CPU架构研究及相关领域的工程师和技术人员。 使用场景及目标:①理解和掌握RISC-V指令集在五级流水线CPU设计中的应用;②学习Verilog语言在CPU硬件设计中的具体实现方法;③通过汇编验证代码测试CPU功能,确保设计的可靠性。 其他说明:本文不仅提供了完整的Verilog源代码和汇编验证代码,还包括详细的说明文档和PPT,有助于读者更好地理解和实践CPU设计过程。

    基于51单片机与HC-05蓝牙模块的Android手机通信程序

    本程序实现了51单片机与手机之间的字符及数字通信功能,且代码中配有详尽的注释说明。关于通信原理的详细阐述,可在我的其他相关文章中查阅。

    cmd-bat-批处理-脚本-run dialogue.zip

    cmd-bat-批处理-脚本-run dialogue.zip

    多智能体编队技术中48智能体点对点转换的分布式模型预测控制及应用 多智能体系统

    内容概要:本文详细介绍了多智能体编队技术,特别是针对4智能体和8智能体的点对点转换分布式模型预测控制。首先概述了多智能体编队的概念及其广泛应用,如无人驾驶、无人机编队等。接着深入探讨了分布式模型预测控制的方法论,强调每个智能体依据自身模型和邻近智能体信息进行预测并制定控制策略,从而提升系统灵活性和鲁棒性。随后阐述了点对点转换的具体机制,即智能体间通过高效的信息交换实现状态间的平滑过渡。最后展示了简化的Python代码示例来解释这一过程,并提供了相关领域的权威参考文献。 适合人群:对多智能体系统、分布式控制系统感兴趣的科研人员和技术开发者。 使用场景及目标:适用于希望深入了解多智能体编队控制理论的研究者以及从事无人驾驶、无人机编队等相关项目的技术人员。目标在于掌握分布式模型预测控制的基本原理及其在实际工程中的应用。 其他说明:文中提供的代码仅为概念验证性质,实际部署时还需考虑更多因素如网络延迟、数据同步等。此外,附带的参考文献为读者进一步学习提供了宝贵的资料来源。

    2023年系统分析师真题及解析

    2023年系统分析师真题及解析

    IMG_20250521_201207.jpg

    IMG_20250521_201207.jpg

    基于鲸鱼算法的光伏风电选址定容优化及其经济性评估 多目标优化

    内容概要:本文探讨了利用鲸鱼算法(Whale Optimization Algorithm)对光伏和风电项目的选址和定容进行优化的方法。鲸鱼算法是一种新颖的智能算法,它模仿座头鲸的捕食行为,具有较少的参数调整需求和强大的寻优能力。文中详细介绍了该算法的核心机制,如气泡网攻击策略,并展示了如何将其应用于新能源项目的选址定容问题中。具体来说,通过定义合适的目标函数来衡量不同方案的表现,包括网损、节点电压偏差和投资成本等因素。此外,还讨论了如何通过调整权重系数来平衡各个目标之间的关系,从而获得最佳解决方案。最终,通过对实验结果的分析,证明了鲸鱼算法在处理此类多维度优化问题上的优越性能。 适合人群:从事新能源规划、电力系统工程及相关领域的研究人员和技术人员。 使用场景及目标:适用于需要对光伏和风电项目进行科学合理的选址和定容决策的情境下,旨在提高能源利用效率的同时降低成本,确保电网稳定性和可靠性。 其他说明:文中提供了具体的Python代码示例,帮助读者更好地理解和实现鲸鱼算法的应用。同时强调了在实际操作过程中应注意的一些关键因素,如数据预处理方法的选择以及参数设置的影响等。

    工业自动化领域威纶通A2触摸屏程序标准精美模板及其应用

    内容概要:本文详细介绍了威纶通标准精美模板,一套专为A2触摸屏程序开发提供的可直接套用的界面模板。模板涵盖了多个实用功能界面,如配方管理、报警记录、操作记录、登录、设备使用说明、参数设置、系统设置、权限设置、趋势显示、电机设置、IO监控、工位用时、文档设置和维修界面。每个界面均经过精心设计,确保界面清新整洁,不带复杂的宏指令,便于操作和维护。此外,模板还支持XY曲线、树状图、数据统计等功能,能够灵活配置和调用。这套模板不仅适用于快速开发,也为新手和在校生提供了宝贵的学习资源。 适用人群:工业自动化领域的开发人员、工程师、新手和在校学生。 使用场景及目标:① 开发人员可以通过直接套用或复制模板,快速完成A2触摸屏程序开发;② 新手和在校生可以利用模板学习触摸屏程序的设计和实现,掌握工业自动化领域的关键技能。 其他说明:模板中的功能和界面设计充分考虑了工业自动化的需求,确保了系统的稳定性和实用性。

    一种三元锂电池析锂特性以及检测方法研究.zip

    一种三元锂电池析锂特性以及检测方法研究.zip

    大规模无线传感 器网络中稀疏信号的数据收集策略.pdf

    大规模无线传感 器网络中稀疏信号的数据收集策略.pdf

    cmd-bat-批处理-脚本-One_Click_StockPrice.zip

    cmd-bat-批处理-脚本-One_Click_StockPrice.zip

    cmd-bat-批处理-脚本-installed-package-contents.zip

    cmd-bat-批处理-脚本-installed-package-contents.zip

    2025年网络媒体项目解决方案.docx

    2025年网络媒体项目解决方案.docx

    实证数据-2010-2023年上市公司-管理层情感语调数据-社科经管.rar

    该数据集为2010-2023年中国A股上市公司管理层情感语调的年度面板数据,覆盖45,320条样本,数据源自年报及半年报的"管理层讨论与分析"部分。通过构建中文金融情感词典(融合《知网情感分析用词典》与L&M金融词汇表),采用文本分析方法计算情感语调指标,包括:正面/负面词汇数量、文本相似度、情感语调1((积极词-消极词)/总词数)和情感语调2((积极词-消极词)/(积极词+消极词))。同时包含盈利预测偏差、审计意见类型等衍生指标,可用于研究信息披露质量、市场反应及代理问题。该数据复刻了《管理世界》《财经研究》等期刊的变量构建方法,被应用于分析语调操纵对债券市场的影响,学术常用度与稀缺度较高。

Global site tag (gtag.js) - Google Analytics