1. 程式人生 > >學習Java面向物件程式設計和設計模式最好的5本書

學習Java面向物件程式設計和設計模式最好的5本書

對於任何一個Java開發人員來說,必須學會面向物件的設計原則和各種設計模式的知識。但有一些關於面向物件設計原則、設計模式和最佳實踐的書籍,只有少數幾本書能做到真正在講解這方面內容。

設計原則和設計模式,設計原則是基礎,設計模式是基於這個基礎的最佳實踐。首先應該學習面向物件的理論原則,然後學習設計模式,看看再來學習這些原則是如何被用來解決日常問題的。

我收集了5本書的清單,用於學習Java中面向物件的程式設計基礎知識和設計模式。 這些書籍由淺入深。J2EE設計模式與核心Java設計模式稍有不同,但對於Java開發人員同樣重要,核心的J2EE模式書籍不錯的選擇。

 

1. 《深入淺出設計模式》

 

 

這是我讀的第一本 Head First 系列的第一本書,在此之前,我不知道什麼時候使用抽象類或介面,或者為什麼組合比繼承更好。在軟體開發的最初幾年,我通常會對每個特性和需求來進行編碼,在完成更多的更改、更多的測試之後發現引入更多的bug。

 

後來由於我的閱讀興趣,我發現了《深入淺出設計模式》,在讀完第一章後,我非常激動。可以說這本書的內容是非常基本的,但是隻有掌握了基礎知識才能更快學習更先進的東西。對於任何Java開發人員,包括有經驗的和資深的開發人員,都必須閱讀關於面向物件設計模式的書籍。我甚至建議可以從這本書開始學習設計模式。它不僅清晰地解釋了概念,還提供了大量的圖表、練習、測驗和實際案例,讓你思考和學習。

 

我是head first系列書籍的超級粉絲,無論是Head First Java還是Head First Design Pattern都非常不錯。Head First Design Pattern中有很多很棒的例子,任何想要了解繼承,封裝,多型,抽象等面向物件基礎知識的人都應該讀讀這本書。其中裝飾模式(Decorator design pattern)和觀察者模式(Observer design pattern)的內容都講述的很棒。

 

2. 《設計模式》

 

 

本書是四人幫經典的(GOF)設計模式書,迄今為止編寫和釋出的許多面向物件設計模式書籍都是借鑑這本書。任何必須閱讀的Java設計模式書籍清單中沒有出現這本書,都是不完整的。近20年來,本書仍然貼合當下的面向物件和Java模式設計。

 

本書通過一個設計文件編輯器的例子,來解釋各種設計模式,例如Creational patterns, Structural and Behavioral patterns。恕我直言,個人認為這是設計模式中最好的書籍之一,也是任何Java開發人員必讀的書籍之一,你可以從亞馬遜購買這本書,它分為精裝版本,平裝版和多媒體CD版。

 

3. 《Design Patterns Explained: A New Perspective on Object-Oriented Design 》

 

 

與多執行緒和併發一樣,設計模式也不易理解。最困難的部分是足夠理解之後把它用到現實生活的例子中去,這就是為什麼有時最好使用多本書來學習Java設計模式的原因。因為不同的作者的寫作風格和描述手法各有不同。有些程式設計師發現某個作者的書比其他人更好理解,而Joshua Bloch是唯一的例外,他的書適合大多數Java開發人員。

 

設計模式:是學習面向物件設計模式的一本書。雖然它也解釋了OOPS原則,UML和設計模式,如裝飾者模式,工廠模式或觀察者設計模式,但它的解釋方式對於許多初學者來說可能更容易理解。這本的例子也很好。

 

4. 《Software Architecture Design Patterns in Java》

 

 

這是關於面向物件和Java設計模式的另一本好書,它不僅涵蓋了基本的面向物件原則,如類,物件,繼承,多型,抽象和封裝,還涵蓋了很實用但不明顯的細節,例如私有方法,getter和setter,不可變物件,介面和監視器。本書還介紹了大量設計模式,例如建立模式,集合模式,結構模式,行為模式和併發模式,它涵蓋了工廠設計模式和單例模式,閱讀起來非常有趣。

 

它書中的案例和UML圖表也是我推薦它的一大原因,它不僅有助於讀者更深入的理解知識點,而且還能確保讀者看完能夠學以致用,這對學習任何設計模式來說都是最重要的。最後,他們還有一個針對虛擬主機公司設計軟體解決方案的案例研究,它可以讓您真實地在現實世界中識別和應用設計模式。簡單來說,Java中的軟體體系結構設計模式幾乎涵蓋了關於Java設計模式的所有知識。

 

最後,他們有一個為web託管公司設計軟體解決方案的案例,讓讀者在實際案例中應用設計模式。簡而言之,這本書幾乎包含了所有你需要了解的關於Java設計模式的知識。

 

5.《J2EE核心模式》

 

 

J2EE平臺是使用Java程式語言最流行的開發方式,由於它專注於Web和企業解決方案,因此它有一系列自己的需求原則。核心J2EE模式解釋了J2EE世界中最有用的一些設計模式,例如攔截過濾器,前端控制器,MVC模式,資料訪問物件或DAO模式,檢視協助器模式(View Helper Pattern)或檢視解析器(View Resolver)模式,Service Locator模式等。

 

本書根據設計模式的功能劃分,例如表示層的設計模式,業務層的設計模式等。這是任何Java J2EE開發人員的必讀書籍。儘管像Spring這樣的現代框架可以確保你在框架級別遵循這些J2EE設計模式,例如Spring MVC確保了MVC的使用,它也同時使用了前端控制器(DipatcherServlet)和檢視解析器(ViewResolver)。Spring框架,也讓你在容器級別使用了依賴注入和IOC。話雖如此,無論你使用Spring MVC,Struts還是任何其他Web框架,對這些J2EE模式的瞭解都會幫助你瞭解程式碼以及建立更容易維護的解決方案。

 

6.《Real World Java EE Patterns》

 

 

這本書是我們的讀者推薦的。他說:“你學習Java EE模式你更應該閱讀的書是Adam Bien的《Real World Java EE Patterns》,他會向你解釋為什麼你不應該再編寫自己的DAO層。“ 我讀了幾個章節之後,覺得這位讀者說的對,這是關於Java EE模式內容的最新書籍,也是Java EE開發人員必讀的書籍之一。

 

除了這5本書之外,你還可以看看Joshua Bloch的《Effective Java 2nd Edition》以及《Head first object oriented analysis and design》。Effective Java是任何Java程式設計師都必須閱讀的,因為它解釋了許多Java庫本身的實用原理。