內容簡介
強大的寫作陣容。本書作者EricFreeman;ElElisabethFreeman是作家、講師和技術顧問。Eric擁有耶魯大學的計算機科學博士學位,E1isabath擁有耶魯大學的計算機科學碩士學位。KathySierra(javaranch.com的創始人)FHBertBates是暢銷的HeadFirst系列書籍的創立者,也是Sun公司Java開發員認證考試的開發者。本書的產品設計套用神經生物學、認知科學,以及學習理論,這使得這本書能夠將這些知識深深地印在你的腦海里,不容易被遺忘。本書的編寫方式採用引導式教學,不直接告訴你該怎么做,而是利用故事當作引子,帶領讀者思考並想辦法解決問題。解決問題的過程中又會產生一些新的問題,再繼續思考、繼續解決問題,這樣可以加深體會。作者以大量的生活化故事當背景,例如第1章是鴨子,第2章是氣象站,第3章是咖啡店,書中搭配大量的插圖(幾乎每一頁都有圖),所以閱讀起來生動有趣,不會感覺到昏昏欲睡。作者還利用歪歪斜斜的手寫字型,增加“現場感”。精心設計許多爆笑的對白,讓學習過程不會太枯燥。還有模式告白節目,將設計模式擬人化成節目來賓,暢談其內在的一切。本書大量採用uML的classDiagram(StaticStructureDiagram)。書中的例子程式雖然都是用JaVa編寫,但是本書所介紹的內容對於任何00語言的用戶都適用,包括c++和c孝。每一章都有數目不等的測驗題。每章最後有一頁要點整理,這也是精華所在,我都是利用這一頁做複習。
編輯推薦
本書榮獲2005年第十五屆Jolt通用類圖書震撼大獎。
本書英文影印版被《程式設計師》等機構評選為2006年最受讀者喜愛的十大IT圖書之一。
本書趨近完美,因為它在提供專業知識的同時,仍然具有相當高的可讀性。敘述權威、文筆優美。
目錄
引子
誰適合讀這本書?
我們知道你的大腦在想什麼
元認知
讓你的大腦就範
技術審校
致謝
1 歡迎來到設計模式世界:設計模式入門
模擬鴨子套用
joe想到繼承
利用接口如何?
軟體開發的不變真理
分開變化和不變部分
設計鴨子的行為
測試鴨子的代碼
動態地設定行為
封裝行為的大局觀
“有一個”比“是一個”更好
策略模式
共享模式辭彙的威力
. 我如何使用設計模式?
設計箱內的工具
習題解答
2 讓你的對象知悉現況
氣象觀測站
認識觀察者模式
出版者+訂閱者=觀罕者模式
五分鐘短劇:觀察主題
定義觀察者模式
松耦合的威力
設計氣象站
實現氣象站
使用java內建的觀察者模式
java.util.observable的黑暗面
設計箱內的工具
習題解答
……
3 裝飾者模式:裝飾對象
4 工廠模式:烘烤oo的精華
5 單件模式:獨一無二的對象
6 命令模式:封裝調用
7 適配器模式與外觀模式:隨遇而安
8 模板方法模式:封裝算法
9 送代器與組合模式:管理良好的集合
10 狀態模式:事物的狀態
11 代理模式:控制對象訪問
12 複合模式:模式中的模式
13 與設計模式相處:真實世界中的模式
a 附錄a:剩下的模式
序言
譯者序
設計模式(DesignPattern)很重要,不需要我多說。你瞧,程式設計師幾乎人手一本四人組(ErichGamma、RichardHelm、RalphJohnson、JohnVlissides)所著的《設計模式》。打個比喻:信耶穌的人都要讀聖經,而信OO的人都要讀四人組的《設計模式》,這就是OO的聖經。更有趣的 是,有人還不只買這本書的原版書、連它的光碟版、和中譯本也一併買了收藏,可見這是一本多么受到重視的書。我打探過這本書的銷售量,它暢銷的程度令人咋舌。 許多人反映,四人組的《設計模式》不容易閱讀。對於不容易閱讀的書,會有已經悟道的人寫出白話版或注釋版,以饗後進。所以聖經和佛經都有注釋版,用更白的方式闡述其中的道理,而我認為《HeadFirst設計模式》也是因應這樣的需求而產生,它可以被視為是白話版、搞笑版、漫畫版的《設計模式》。《HeadFirst設計模式》比起《設計模式》好讀得多了,內容也相當有趣。相信我,要寫出這樣的一本書絕對比寫一本正兒八經的書難上許多,可見作者煞費苦心。作者的用心換來空前的成功。《HeadFirst設計模式》得到相當正面的讀者回響,連《設計模式》原創者ErichGamma也慨然為《HeadFirst設計模式》寫一段推薦文來“作保證”。《HeadFirst設計模式》還得到2005年的JoltAward大獎,風光至極。
本書大綱
本書共有14章,每章都介紹了幾個設計模式,完整地涵蓋了四人組版本全部23個設計模式。前言先介紹這本書的用法;第1章到第11章陸續介紹的設計模式為Strategy、Observer、DecoratorAbstractFactory、FactoryMethod、Singleton、Command、Adapter、Facade、Template Method、Iterator、Composite、State、Proxy。最後三章比較特別。第12章介紹如何將兩個以上的設計模式結合起來成為新的設計模式(例如著名的MVC模式),作者稱其為複合設計模式(這是作者自創的名稱,並非四人組的標準名詞),第13章介紹如何進一步學習設計模式,如何 發覺新的設計模式等主題,至於第14章則很快地瀏覽尚未介紹的設計模式,包括Bridge、Builder、ChainofResponsibility、flyweight、Interpreter、Mediator、Memento、Prototype、Visitor。第1章還介紹了四個OO基本概念(抽象、封裝、繼承、多態),而第1章到第9章也陸續介紹了九個OO原則(Principle)。千萬不要輕視這些OO原則,因為每個設計模式背後都包含了幾個OO原則的概念。很多時候,在設計時有兩難的情況,這時候我們必須回歸到OO原則,以方便判斷取捨。可以這么說:OO原則是我們的目標,而設計模式是我們的做法。
本書特色
強大的寫作陣容。本書作者EricFreeman和ElisabethFreeman是作家、講師和技術顧問。Eric擁有耶魯大學的計算機科學博士學位,Elisabath擁有耶魯大學的計算機科學碩士學位。KathySierra(javaranch.com的創始人)和BertBates是暢銷的Head First系列書籍的創立者,也是Sun公司Java開發員認證考試的開發者。
本書的產品設計套用神經生物學、認知科學,以及學習理論,這使得這本書能夠將這些知識深深地印在你的腦海里,不容易被遺忘。本書的編寫方式採用引導式教學,不直接告訴你該怎么做,而是利用故事當作引子,帶領讀者思考並想辦法解決問題。解決問題的過程中又會產生一些新的問題,再繼續思考、繼續解決問題,這樣可以加深體會。作者以大量的生活化故事當背景,例如第1章是鴨子,第2章是氣象站,第3章是咖啡店,書中搭配大量的插圖(幾乎每一頁都有圖),所以閱讀起來生動有趣,不會感覺到昏昏欲睡。作者還利用歪歪斜斜的手寫字型,增加“現場感”。精心設計許多爆笑的對白,讓學習過程不會太枯燥。還有模式告白節目,將設計模式擬人化成節目來賓,暢談其內在的一切。
本書大量採用UML的ClassDiagram(StaticStructureDiagram)。書中的例子程式雖然都是用Java編寫,但是本書所介紹的內容對於任何OO語言的用戶都適用,包括C++和C#。每一章都有數目不等的測驗題。每章最後有一頁要點整理,這也是精華所在,我都是利用這一頁做複習。
我認為,這本書的作者全都是“變態”!唔,我是說,好的那種“變態”。畢竟要把這么枯燥的主題寫得這么有趣而學習效果又好,不是“變態”的作者還真是做不到呢!
盤點程式語言與程式設計書籍
程式語言(programming language),又稱程式設計語言(program design language,簡稱PDL),是一組用來定義電腦程式的語法規則。它是一種被標準化的交流技巧,用來向計算機發出指令。一種計算機語言讓程式設計師能夠準確地定義計算機所需要使用的數據,並精確地定義在不同情況下所應當採取的行動 |