< >
你不想重新發明輪子(或者更差的是,沒有充氣的輪子),所以你從設計模式中尋求協助-設計模式是過去人們面對軟體設計問題所學來的經驗。有了設計模式,你就可以利用其他人經驗和實務的精華,省下的時間可以用在...其他的事情上,像是:更有挑戰性的事情、更複雜的事情、更有趣的事情。你想要學習:事關緊要的模式 何時使用某個模式,為何使用該模式 如何在你自己的設計中馬上採用這些模式 何時不該使用模式(如何避免對模式過度狂熱) 某個模式是依據哪些OO設計守則而設計出來的 更重要的是,你想在學習設計模式的過程中,不會感覺到昏昏欲睡。如果你曾經讀過任何一本一頭栽進系列書籍,你就會知道你能夠從本書中得到的是:透過豐富的視覺效果讓你的大腦充分地運作。本書的編寫運用許多最新的研究,包括神經生物學、認知科學、以及學習理論,這使得這本書能夠將這些設計模式深深地烙印在你的腦海中,不容易被遺忘。你將會更擅長於解決軟體設計的問題,並能夠和你的團隊成員用模式的術語來溝通。Eric Freeman以及Elisabeth Freeman是作家、講師、以及技術顧問。原本在迪士尼公司領導數位媒體以及網際網路的開發,後來他們將這些經驗採用在他們自己的媒體中,包括這本書中。Eric具有耶魯大學的電腦科學博士學位,Elisbath具有耶魯大學的電腦科學碩士學位。Kathy Sierra(javaranch.com的創始者)以及Bert Bates是暢銷的一頭栽進系列書籍的創立者,也是Sun公司Java開發者認証的規劃者。
序1 介紹模式設計模擬鴨子喬依想到繼承利用介面如何?軟體開發的一個不變真理分開變動和不會變動的部分設計鴨子的行為測試鴨子的程式動態地設定行為行為封裝的大局觀『有一個』可能比『是一個』更好策略模式共通模式詞彙的威力我如何使用設計模式?設計箱內的工具習題解答2 觀察者模式氣象監測系統認識觀察者模式出版者 + 訂閱者 = 觀察者模式五分鐘短劇:值得觀察的主題定義觀察者模式鬆綁的威力設計氣象站實踐氣象站使用 Java 內建的觀察者模式java.util.Observable 的黑暗面設計箱內的工具習題解答3 裝飾者模式歡迎來到星巴茲咖啡開放關閉守則認識裝飾者模式以裝飾者建構飲料訂單定義裝飾者模式裝飾飲料寫下星巴茲的程式碼真實世界的裝飾者:Java I/O設計自己的 Java I/O 裝飾者設計箱內的工具習題解答4 工廠模式當看到『new』,就要聯想到『具象』物件村比薩封裝建立物件的程式碼建立一個簡單的比薩工廠定義簡單工廠給比薩店使用的框架允許次類別做決定讓我們開一家比薩店吧!宣告一個工廠方法會見工廠方法模式平行的類別階層定義工廠方法模式一個很依賴的比薩店看看物件的相依性顛覆依賴守則再回到比薩店...原料家族建立原料工廠到底做了什麼事?(抽象工廠)幕後花絮定義抽象工廠模式比較工廠方法以及抽象工廠設計箱內的工具習題解答5 獨體模式獨一無二小小獨體剖析經典的獨體模式設計獨體的告解巧克力工廠定義獨體模式Hershey(賓州廠),我們遇到麻煩了...化身為 JVM處理多執行緒獨體的 Q&A設計箱內的工具習題解答6 命令模式巴斯特家電自動化公司遙控器看一下廠商的類別同時,回到餐廳...研究餐廳的互動過程物件村餐廳的角色以及責任從餐廳到命令模式第一個命令物件定義命令模式 命令模式與遙控器實踐遙控器逐步測試遙控器寫文件的時刻到了使用狀態實踐復原每個遙控器都需具備集合形式!使用巨集命令命令模式的更多用途:佇列請求命令模式的更多用途:日誌請求 設計箱內的工具習題解答7 轉接器模式與表象模式我們周遭的轉接器OO 轉接器解釋轉接器模式定義轉接器模式物件和類別的轉接器今晚的話題:物件轉接器以及類別轉接器真實世界的轉接器將列舉轉接到重複器今晚的話題:裝飾者模式以及轉接器模式甜蜜的家庭劇院燈光,相機,表象!建構家庭劇院表象定義表象模式「認識極少化」守則設計箱內的工具習題解答8 樣板方法模式急就章寫幾個咖啡和茶的類別抽取咖啡和茶更進一步的設計將 prepareRecipe() 抽象化我們做了什麼事?認識樣板方法走,泡茶去樣板方法帶給我們什麼?定義樣板方法模式再靠近一點對樣板方法進行掛鉤...使用掛鉤執行測試程式好萊塢守則好萊塢守則以及樣板方法荒野中的樣板方法用樣板方法排序來排序鴨子吧比較鴨子觀察排序的內部運作寫一個 Swing 的視窗程式Applet今晚的話題:樣板方法以及策略方法設計箱內的工具習題解答9 反覆器與合成模式物件村餐廳和煎餅屋合併比較菜單的實踐方式可以封裝重複的動作嗎?認識反覆器模式在餐廳菜單中加入一個反覆器鳥瞰目前的設計利用 java.util.Iterator 改寫程式這為我們帶來什麼好處?定義反覆器模式 單一責任反覆器與聚合Java 5 的反覆器以及聚合正當我們認為這很安全的時候...定義合成模式利用合成設計菜單實踐合成菜單倒敘到反覆器空反覆器反覆器和合成湊在一起的魔力...設計箱內的工具習題解答10 狀態模式如何實踐狀態?(辦公室隔間對話)狀態機的要點狀態機程式碼第一版該來的躲不掉...需求改變!混亂的狀態...定義狀態介面與類別實踐我們的狀態類別重新改造糖果機定義狀態模式狀態 vs 策略模式狀態精神檢查我們差點兒忘了!設計箱內的工具習題解答11 代理人模式監控糖果機遠端代理人的角色RMI 巡禮糖果機遠端代理人代理人幕後花絮 定義代理人模式準備虛擬代理人虛擬代理人設計 CD 封面程式圖像代理人的幕後花絮使用 Java API 的代理人五分鐘短劇:保護主角建立動態代理人代理人動物園設計箱內的工具習題解答12 複合模式複合模式鴨子重出江湖加入一個轉接器加入一個裝飾者加入一個工廠加入一個合成,一個反覆器加入一個觀察者模式總結從鴨子的角度看類別圖Model-View-Controller 之歌設計模式是 MVC 的關鍵戴上模式的有色眼鏡看 MVC使用 MVC 控制節拍...ModelViewController探索策略模式Model 的轉接我們已經準備好進行心臟控制器將 MVC 運用在 Web設計模式與 Model設計箱內的工具習題解答13 與設計模式相處物件村指南定義設計模式更仔細地觀察設計模式的定義願力量與你同在模式型錄發掘自己的模式想當一個設計模式的作家嗎?組織設計模式用模式思考在模式的心智別忘了共通語彙的威力共通語彙的五種方式 和四人幫一同巡迴物件村 你的旅途剛開始...其他設計模式的資源模式動物園以反模式殲滅惡勢力設計箱內的工具離開物件村...14 附錄:剩下的模式橋樑模式建立者模式責任鏈模式蠅量級模式翻譯者模式居間協調者模式助記物模式雛形模式參觀者模式索引
深入淺出 Java 程式設計 第二版 深入淺出軟體開發 深入淺出物件導向分析與設計
購買紙本書