JavaRush /Java Blog /Random-TW /《Head First 設計模式》一書的評論
Alex
等級 37

《Head First 設計模式》一書的評論

在 Random-TW 群組發布
在對《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