第1章

現代科學技術迅猛發展,計算機信息技術發揮着巨大的作用,並已經滲透到各行各業,推動着這些行業的迅速發展。很多讀者朋友熟練地掌握了語言,卻對設計模式不夠重視,導致在實際的工作中沒有真正應用到起關鍵作用的設計模式。

而瞭解了設計模式,在宏觀上就能把握面向對象編程的精髓。對於大多數不懂編程的朋友來說,瞭解了設計模式,也就是體會到了編程世界的一個大的框架。

究竟什麼是設計模式呢?

設計模式就是由某些需要嚴密整合的具體接口開始,最後過渡到一種通用的結構。不管最後所選取的設計模式是什麼,最初的目的都是相同的,就是爲了解決一個設計問題。它所創造的一系列詞彙可以幫助我們同其他開發者相互交流。

設計模式體現的是一種思想,思想是指導行爲的一切。理解和掌握設計模式,記住23種或者更多的設計場景和解決策略是不夠的,更要接受一種思想的薰陶和洗禮。用這種思想進行設計和開發,這纔是重要的。

本書通過故事講述程序如何設計。希望能給渴望瞭解面向對象程序設計的初學者及困惑、無法複用的代碼編程體驗者一些好的建議和提示。

本書主要採用JAVA語言介紹設計模式中比較常見的23種設計模式,分29章具體介紹,以現實生活中常見的事情爲例來具體分析講解。在本書中,以“男人和女人通過媒人約會”爲例來說明。這樣比只告訴概念性的內容更加容易理解和記憶。爲了讓讀者能夠更好地理解這23種常見的設計模式,本書還舉了許多的例子,如我們大學生畢業面臨的問題:大學畢業了怎麼辦?參加招聘會或是大學生畢業後會選擇什麼樣的路?等等。每種設計模式都以一個現實生活中的故事爲例,引入該模式的概念,目的是使概念能夠通俗易懂,然後是舉一至兩個較簡單易懂的代碼例子來具體體現該模式。之所以會採用Java語言是因爲Java比C++計算機語言簡單,沒有像C++語言中有一些不容易理解或容易出錯的概念和語法。Java是一種較新的計算機語言,所以它在面向對象和多線程特性上比其他現有計算機語言顯得更純粹一些,在網絡平臺無關性和安全性方面的優點也比大部分計算機語言更顯突出。而Java語言本身是一種可以滿足這種需求的計算機語言。學習Java程序設計,應用Java語言實現算法也比較容易,從而節省編程時間,編寫出來的Java代碼比較容易得到複用和移植。

本書是一些基礎性的內容,不適合有多年面向對象開發經驗和對常用的設計模式瞭如指掌的人。它所面向的讀者是那些想提高的初中級Java程序員。

本書人物及背景

小A:原名李華,22歲,廣東人,廣州某大學計算機專業大學三年級學生,成績一般,但是好學上進。

大B:原名黃大遠,29歲,廣東人,廣州某大學畢業,是小A的師兄。 畢業後長期從事軟件開發和管理工作,住在小A家附近,小A以向大B學習爲由,經常找大B聊天。大B也很欣賞小A的好學上進,所以也常常鼓勵小A,幫小A解決學習上遇到的困難。

本書結構

本書主要分爲七個部分來講述23種常見設計模式。

第一部分主要是第一章設計模式的概述。

第二部分是(第2章~第6章)介紹接口型模式。主要包括:適配器模式、外觀模式、組合模式、橋接模式。

第三部分是(第7章~第12章)介紹責任型模式。主要包括:單體模式、觀察者模式、中介者模式、代理模式、享元模式。

第四部分是(第13章~第18章)介紹構造型模式。主要包括生成器模式、工廠方法模式、抽象工廠模式、原型模式、備忘錄模式。

第五部分是(第19章~第24章)介紹操作型模式。主要包括模板方法模式、狀態模式、策略模式、命令模式、解釋器模式。

第六部分是(第25~第29章)介紹擴展型模式。主要包括裝飾器模式、迭代器模式、訪問者模式和設計模式總結。

第七部分是附錄。

編者

第129章第60章第224章第40章第4章第172章第217章第3章第216章第168章第128章第175章第49章第53章第137章第190章第159章第147章第1章第87章第1章第130章第99章第31章第27章第65章第20章第108章第161章第127章第123章第118章第4章第136章第208章第44章第54章第1章第107章第172章第121章第118章第41章第61章第199章第191章第157章第57章第173章第184章第90章第93章第223章第112章第56章第129章第147章第124章第204章第108章第134章第204章第113章第32章第147章第172章第165章第90章第47章第127章第51章第41章第223章第110章第69章第119章第168章第41章第172章第226章第8章第142章第26章第19章第24章第125章第37章第58章第94章第205章第47章第171章第141章第171章第222章第190章第77章第2章第58章第157章
第129章第60章第224章第40章第4章第172章第217章第3章第216章第168章第128章第175章第49章第53章第137章第190章第159章第147章第1章第87章第1章第130章第99章第31章第27章第65章第20章第108章第161章第127章第123章第118章第4章第136章第208章第44章第54章第1章第107章第172章第121章第118章第41章第61章第199章第191章第157章第57章第173章第184章第90章第93章第223章第112章第56章第129章第147章第124章第204章第108章第134章第204章第113章第32章第147章第172章第165章第90章第47章第127章第51章第41章第223章第110章第69章第119章第168章第41章第172章第226章第8章第142章第26章第19章第24章第125章第37章第58章第94章第205章第47章第171章第141章第171章第222章第190章第77章第2章第58章第157章