大話設(shè)計(jì)模式

出版時(shí)間:2007-12  出版社:清華大學(xué)出版社  作者:程杰  頁(yè)數(shù):368  
Tag標(biāo)簽:無(wú)  

前言

本書(shū)是一本程序集?NO。本書(shū)是一本故事集?NO。本書(shū)是一本通過(guò)故事講述程序如何設(shè)計(jì)的方法集。本書(shū)是給連Hello World都沒(méi)寫過(guò)的非程序員看的書(shū)嗎?NO。本書(shū)是給玩過(guò)穿孔紙帶(0/1)、寫過(guò)匯編、BASIC、C、C++、Delphi、Java、C#等語(yǔ)言,開(kāi)發(fā)過(guò)覆蓋全球、使用人數(shù)過(guò)億、數(shù)百萬(wàn)行代碼等大型系統(tǒng)的骨灰級(jí)程序員看的書(shū)嗎?NO。本書(shū)希望能給渴望了解OO世界的初學(xué)者、困惑于僵硬、脆弱、無(wú)法復(fù)用的代碼編程體驗(yàn)者、一直打著OO編程的旗號(hào),做著過(guò)程式開(kāi)發(fā)的基于對(duì)象的編程實(shí)踐者一些好的建議和提示。本書(shū)起因?qū)懕緯?shū)源于我一次做培訓(xùn)的經(jīng)歷,學(xué)生大多是計(jì)算機(jī)專業(yè)的學(xué)生或有過(guò)一定經(jīng)驗(yàn)的在職開(kāi)發(fā)者。他們都知道類、方法、構(gòu)造方法、甚至抽象類、接口等概念,并用 Visual Studio寫過(guò)不少的Windows或Web程序,可是當(dāng)我提問(wèn)為什么要用面向?qū)ο?,它的好處在哪里時(shí),卻沒(méi)有人能完整地講得出來(lái),多數(shù)人的反應(yīng)是,概念知道的,就是表達(dá)不清楚。針對(duì)于此,我就舉了中國(guó)古代的四大發(fā)明中活字印刷的例子(見(jiàn)第1章),通過(guò)一個(gè)虛構(gòu)的三國(guó)曹操做詩(shī)的情景,把面向?qū)ο蟮膸状蠛锰幹v解了一下,學(xué)生普遍都感覺(jué)通俗易懂,覺(jué)得這樣的教學(xué)比直接告訴面向?qū)ο笥惺裁春锰幰尤菀桌斫夂陀洃?。這就使得我不斷地思考這樣一個(gè)問(wèn)題,學(xué)一門技術(shù)是否需要趣味性、通俗性的引導(dǎo)。我在思考中發(fā)現(xiàn),看小說(shuō)時(shí),一般情況下我都可以完整地讀完它,而閱讀技術(shù)方面的圖書(shū),卻很少有真正的每章每頁(yè)的仔細(xì)閱讀。盡管這兩者是有很大區(qū)別,技術(shù)書(shū)中可能有不少知識(shí)是已經(jīng)學(xué)會(huì)或暫時(shí)用不上的內(nèi)容,但也不得不承認(rèn),小說(shuō)之所以可以堅(jiān)持讀完是因?yàn)閷?duì)它感興趣,作者的文字吸引你。而有些技術(shù)書(shū)的枯燥乏味使得閱讀產(chǎn)生了困難,通常讀個(gè)前幾章就留待以后再說(shuō)了。技術(shù)課的教學(xué)同樣如此,除非學(xué)生是抱著極大的學(xué)習(xí)動(dòng)機(jī)來(lái)參與其中,否則照本宣科的教學(xué)、枯燥乏味的講解,學(xué)生一定會(huì)被龐雜的概念和復(fù)雜的邏輯攪暈了頭腦,致使效果大打折扣。也正因?yàn)榇?,往往造成部分學(xué)生,學(xué)了四年的計(jì)算機(jī)編程,卻可能連面向?qū)ο笥惺裁春锰幎歼€說(shuō)不清。為什么不可以讓技術(shù)書(shū)帶點(diǎn)趣味性呢,哪怕這些趣味性與所講的技術(shù)并不十分貼切,只要不是影響技術(shù)核心的本質(zhì),不產(chǎn)生重大的錯(cuò)誤,讓讀者能輕松閱讀它,并且有了一定的了解和感悟,這要比一本書(shū)寫得高深無(wú)比,卻被長(zhǎng)期束之高閣要好得多。也正是這個(gè)原因,本人開(kāi)始了關(guān)于設(shè)計(jì)模式的趣味性寫作的嘗試。本書(shū)讀者顯然本書(shū)不是給無(wú)任何編程經(jīng)驗(yàn)的人看的,對(duì)于想入這一行的朋友來(lái)說(shuō),找一門編程語(yǔ)言,從頭開(kāi)始或許才是正道。而本書(shū)也不太適合有了多年面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),對(duì)常用的設(shè)計(jì)模式了如指掌的人看的。畢竟這里更多的是一些基礎(chǔ)性的東西。我時(shí)常拿程序員的成長(zhǎng)與足球運(yùn)動(dòng)員的成長(zhǎng)做對(duì)比。GoF 的《設(shè)計(jì)模式》好比是世界頂級(jí)足球射門集錦,《重構(gòu)》、《敏捷軟件開(kāi)發(fā)》、《設(shè)計(jì)模式解析》好比是一場(chǎng)場(chǎng)最精彩的足球比賽。我為之瘋狂,為之著迷??墒俏也⒉恢皇窍胱鲆粋€(gè)球迷(軟件使用者),而是更希望自己能成為一個(gè)足球運(yùn)動(dòng)員(軟件設(shè)計(jì)編程者),能夠親自上場(chǎng)比賽,并且最終能成為球星(軟件架構(gòu)師)。我仔細(xì)地閱讀這些被譽(yù)為經(jīng)典的著作,認(rèn)真地實(shí)踐其中代碼,但是我總是半途而廢、堅(jiān)持不下去,我痛恨自己意志力的薄弱、憎惡自己無(wú)端地放棄,難道我真的就是那么的笨?痛定思痛,反思悔過(guò)。我終于發(fā)現(xiàn),貝利、馬拉多納不管老、胖是用來(lái)敬仰的,貝克漢姆、羅納爾迪尼奧不管美、丑是用來(lái)欣賞的,但他們的球技……嗨,客氣地說(shuō),是不容易學(xué)會(huì)的,客觀地說(shuō),是不可能學(xué)得會(huì)的。為什么會(huì)這樣?原來(lái),我學(xué)習(xí)中缺了一個(gè)很重要的環(huán)節(jié),我們?cè)诳吹搅司实那蛸?,欣賞球星高超球技的同時(shí),卻忽略了球星的成長(zhǎng)過(guò)程。他們盡管有一定天分,但卻也是從最底層通過(guò)努力一點(diǎn)一點(diǎn)慢慢顯露出來(lái)的,我們需要的不僅僅是世界杯上的那定乾坤的一腳,更需要這一腳之前是如何練出那種神奇的方法,對(duì)于程序員來(lái)講,精彩的代碼是如何想出來(lái)的,要比看到精彩的代碼更加令人期待。本書(shū)顯然不是培養(yǎng)足球明星(軟件架構(gòu)師)的俱樂(lè)部,而是訓(xùn)練足球基本功的學(xué)校,培訓(xùn)的是初學(xué)足球的小球員(面向?qū)ο蟮某绦騿T),本書(shū)希望的是讀者閱讀后可以打好面向?qū)ο蟮幕A(chǔ),從而更加容易并深入的去理解和感受GoF的《設(shè)計(jì)模式》以及其他大師作品的魅力。本書(shū)定位本書(shū)是在學(xué)習(xí)眾多大師智慧結(jié)晶的圖書(shū)作品、分享了網(wǎng)上多位朋友的實(shí)踐經(jīng)驗(yàn)的基礎(chǔ)上,加之自己的編程感受寫出來(lái)的。正如牛頓有句名言:“如果說(shuō)我比別人看得更遠(yuǎn)些,那是因?yàn)槲艺驹诹司奕说募缟?。”但顯然,本書(shū)并沒(méi)有創(chuàng)造或發(fā)現(xiàn)什么模式,因此談不上站在巨人肩膀上看得更遠(yuǎn)。所以作者更希望本書(shū)能成為一些準(zhǔn)備攀登面向?qū)ο缶幊谈叻宓呐笥训牡巧揭啡?、提攜者,在您登山途中迷路時(shí)給予指引,在您峭壁攀巖摔跤時(shí)給予保護(hù)。本書(shū)特色本書(shū)有兩個(gè)特色,第一特色是重視過(guò)程。看了太多的計(jì)算機(jī)編程類的圖書(shū),大多數(shù)書(shū)籍都是集中在講授優(yōu)秀的解決方案或者一個(gè)完美的程序樣例,但對(duì)這些解決方案和程序的演變過(guò)程卻重視不夠,好書(shū)之所以好,就是因?yàn)樽髡呖梢哉驹趯W(xué)習(xí)者的角度去講解問(wèn)題所在,讓學(xué)習(xí)門檻降低?!吨貥?gòu)與模式》中有一句經(jīng)典之語(yǔ):“如果想成為一名更優(yōu)秀的軟件設(shè)計(jì)師,了解優(yōu)秀軟件設(shè)計(jì)的演變過(guò)程比學(xué)習(xí)優(yōu)秀設(shè)計(jì)本身更有價(jià)值,因?yàn)樵O(shè)計(jì)的演變過(guò)程中蘊(yùn)藏著大智慧。”本人就希望能通過(guò)小菜與大鳥(niǎo)的對(duì)話,在不斷地提問(wèn)與回答過(guò)程中,在程序的不斷重構(gòu)演變中,把設(shè)計(jì)模式的學(xué)習(xí)門檻降低,讓初學(xué)者可以更加容易地理解,為什么這樣設(shè)計(jì)才是好,是如何想到這樣設(shè)計(jì)的。本書(shū)的第二個(gè)特色就是貼近生活。盡管編程是嚴(yán)謹(jǐn)?shù)模蝗荽笤捄蛻蛘f(shuō)。但生活卻是多姿多彩的,而設(shè)計(jì)模式也不是完全孤立于現(xiàn)實(shí)世界而憑空想出來(lái)的理論。事實(shí)上所有的模式都可以在生活中找到對(duì)應(yīng)。因此,通過(guò)主人公小菜和大鳥(niǎo)的對(duì)話,將求職、面試、工作、交友、投資、兼職、辦公室文化、生活百味等等非常接近程序員生活原貌的場(chǎng)景寫到了書(shū)中,用一個(gè)個(gè)小故事來(lái)引出模式,會(huì)讓讀者相對(duì)輕松地進(jìn)入學(xué)習(xí)設(shè)計(jì)模式的狀態(tài)。當(dāng)然,此舉的最大目的還是為了深入淺出,而非純粹噱頭。本書(shū)內(nèi)容本書(shū)通篇都是以情景對(duì)話的形式,用一個(gè)又一個(gè)的小故事或編程示例來(lái)組織的。共分為四個(gè)部分。第一部分是面向?qū)ο蟮囊饬x和好處以及幾個(gè)重要的設(shè)計(jì)原則,通過(guò)小菜面試的失敗引出;第二部分是詳細(xì)講解23個(gè)設(shè)計(jì)模式;第三部分是對(duì)設(shè)計(jì)模式的總結(jié),利用小菜夢(mèng)到的超級(jí)模式大賽的場(chǎng)景,把所有的面向?qū)ο蠛湍J礁拍疃紨M人化來(lái)趣味性的總結(jié)設(shè)計(jì)模式之間的異同和關(guān)鍵點(diǎn)。第四部分是附錄,主要是針對(duì)對(duì)面向?qū)ο蟛皇煜ぷx者的一個(gè)補(bǔ)充,通過(guò)一個(gè)例子的演變介紹了類、封裝、繼承、多態(tài)、接口、事件等概念。本書(shū)人物及背景小菜:原名蔡遙,22歲,上海人,上海某大學(xué)計(jì)算機(jī)專業(yè)大學(xué)四年級(jí)學(xué)生,成績(jī)一般,考研剛結(jié)束,即將畢業(yè),正求職找工作。大鳥(niǎo):原名李大遼,29歲,小菜的表哥,云南昆明人,畢業(yè)后長(zhǎng)期從事軟件開(kāi)發(fā)和管理工作,近期到上海發(fā)展,借住小菜家在寶山的空套房?jī)?nèi)。小菜以向大鳥(niǎo)學(xué)習(xí)為由,也從市區(qū)父母家搬到寶山與大鳥(niǎo)同住。本書(shū)研讀方法本書(shū)建議按順序閱讀,如果您感覺(jué)由于面向?qū)ο笾R(shí)的匱乏,例如對(duì)繼承、多態(tài)、接口、抽象類的理解不足,造成閱讀上的困難,不妨先閱讀附錄一的“培訓(xùn)實(shí)習(xí)生——面向?qū)ο蠡A(chǔ)”部分,然后再?gòu)牡?章開(kāi)始閱讀。如果您已經(jīng)對(duì)不少設(shè)計(jì)模式熟悉,也不妨挑選不熟悉的模式章節(jié)閱讀。盡管本書(shū)中的代碼都提供下載,但不經(jīng)過(guò)讀者的自己手動(dòng)輸入過(guò)程,其實(shí)閱讀的效果是大打折扣的。強(qiáng)烈建議讀者根據(jù)樣例自己寫程序,只有在運(yùn)行出錯(cuò),達(dá)不到預(yù)期效果時(shí)再查看本書(shū)提供的源程序,這樣或許才是最好的學(xué)習(xí)方法。有問(wèn)題可及時(shí)與我聯(lián)系。我的電子郵箱是chengjielong@163.com,博客是 http://cj723.cnblogs.com/。本書(shū)中的很多精華都來(lái)自許多大師作品,建議讀者通過(guò)筆記形式記錄,這將有助于您的記憶和理解設(shè)計(jì)模式,增強(qiáng)最終的讀書(shū)效果。本書(shū)中出現(xiàn)的“[ ]”是表示句子摘自某書(shū)。例如,“策略模式(Strategy):它定義了算法家族,分別封裝起來(lái),讓它們之間可以互相替換,此模式讓算法的變化不會(huì)影響到使用算法的客戶[DP]?!逼渲小癧DP]”表示此名摘自《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》,詳細(xì)摘要說(shuō)明請(qǐng)參看附錄二。本書(shū)中29章中的虛擬人物姓名都是軟件編程中的專業(yè)術(shù)語(yǔ),因此凡是專業(yè)術(shù)語(yǔ)被指向人物姓名的都用斜體字表示,以和實(shí)際術(shù)語(yǔ)區(qū)分。例如,“第一位是我們OOTV創(chuàng)始人,面向?qū)ο笙壬保@里的斜體字面向?qū)ο笾溉嗣?。關(guān)于本書(shū)學(xué)習(xí)的疑問(wèn)解答看本書(shū)需要什么基礎(chǔ)?主要是C#或其他編程語(yǔ)言的基礎(chǔ)知識(shí),如變量、分支判斷、循環(huán)、函數(shù)等編程基礎(chǔ),關(guān)于面向?qū)ο蠡A(chǔ)可參看本書(shū)的附錄一。設(shè)計(jì)模式是否有必要全部學(xué)一遍?答案是,Yes!別被那些說(shuō)什么設(shè)計(jì)模式大多用不上,根本不用全學(xué)的輿論所左右。盡管現(xiàn)在設(shè)計(jì)模式遠(yuǎn)遠(yuǎn)不止23種,對(duì)所有都有研究是不太容易的,但就像作者本人一樣,在學(xué)習(xí)GoF總結(jié)的23個(gè)設(shè)計(jì)模式過(guò)程中,你會(huì)被那些編程大師們進(jìn)行偉大的技術(shù)思想洗禮,不斷增加自己對(duì)面向?qū)ο蟮纳钊肜斫?,從而更好的把這種思想發(fā)揚(yáng)光大。這就如同高中時(shí)學(xué)立體幾何感覺(jué)沒(méi)用,但當(dāng)你裝修好房子購(gòu)買家俱時(shí)才知道,有空間感,懂得空間計(jì)算是如何的重要,你完全可能遇到買了一個(gè)大號(hào)的冰箱卻放不進(jìn)廚房,或買了開(kāi)關(guān)門的衣櫥(移門不占空間)卻因床在旁邊堵住了門而打不開(kāi)的尷尬。重要的不是你將來(lái)會(huì)不會(huì)用到這些模式,而是通過(guò)這些模式讓你找到“封裝變化”、“對(duì)象間松散耦合”、“針對(duì)接口編程”的感覺(jué),從而設(shè)計(jì)出易維護(hù)、易擴(kuò)展、易復(fù)用、靈活性好的程序。成為詩(shī)人后可能不需要刻意地按照某種模式去創(chuàng)作,但成為詩(shī)人前他們一定是認(rèn)真地研究過(guò)成百上千的唐詩(shī)宋詞、古今名句。如果說(shuō),數(shù)學(xué)是思維的體操,那設(shè)計(jì)模式,就是面向?qū)ο缶幊趟季S的體操。我學(xué)了設(shè)計(jì)模式后時(shí)常會(huì)過(guò)度設(shè)計(jì),如何辦?作者建議,暫時(shí)現(xiàn)象,繼續(xù)努力。設(shè)計(jì)模式有四境界:1.沒(méi)學(xué)前是一點(diǎn)不懂,根本想不到用設(shè)計(jì)模式,設(shè)計(jì)的代碼很糟糕;2.學(xué)了幾個(gè)模式后,很開(kāi)心,于是到處想著要用自己學(xué)過(guò)的模式,于是時(shí)常造成誤用模式而不 自知;3.學(xué)完全部模式時(shí),感覺(jué)諸多模式極其相似,無(wú)法分清模式之間的差異,有困惑,但深知誤用之害,應(yīng)用之時(shí)有所猶豫;4.靈活應(yīng)用模式,甚至不應(yīng)用具體的某種模式也能設(shè)計(jì)出非常優(yōu)秀的代碼,以達(dá)到無(wú)劍勝有劍的境界。從作者本人的觀點(diǎn)來(lái)說(shuō),不會(huì)用設(shè)計(jì)模式的人要遠(yuǎn)遠(yuǎn)超過(guò)過(guò)度使用設(shè)計(jì)模式的人,從這個(gè)角度講,因?yàn)榕逻^(guò)度設(shè)計(jì)而不用設(shè)計(jì)模式顯然是因噎廢食。當(dāng)你認(rèn)識(shí)到自己有過(guò)度使用模式的時(shí)候,那就證明你已意識(shí)到問(wèn)題的存在,只有通過(guò)不斷的鉆研和努力,你才能突破“不識(shí)廬山真面目,只緣身在此山中”的瓶頸,達(dá)到“會(huì)當(dāng)凌絕頂,一覽眾山小”的境界。編程語(yǔ)言的差異本書(shū)講的是面向?qū)ο笤O(shè)計(jì)模式,是用.NET中的C#語(yǔ)言編寫,但本書(shū)并不是主要講解C#語(yǔ)言或.NET框架的圖書(shū),因此本書(shū)同樣適合Java、VB.NET、C++等其他一些面向?qū)ο笳Z(yǔ)言的讀者閱讀來(lái)學(xué)習(xí)設(shè)計(jì)模式。就Java而言,主要差異來(lái)自C#對(duì)于子類繼承父類或?qū)崿F(xiàn)接口用的都是“:”,而Java中兩者是有區(qū)別的。當(dāng)Cat繼承抽象類Animal時(shí),Java語(yǔ)法是public class Cat extends Animal當(dāng)Superman實(shí)現(xiàn)接口IFly時(shí),Java語(yǔ)法是public class Superman implements IFly然后Java中所有的方法都是虛擬的,因此不用指定new或是override修飾符。還有一些其他差異,但基本都不影響本書(shū)的閱讀。對(duì)于VB.NET的程序員,如果閱讀困難,不妨去網(wǎng)上查找關(guān)于轉(zhuǎn)換C#與VB.Net語(yǔ)言的工具,比如http://www.kamalpatel.net/ConvertCSharp2VB.aspx,將下載本書(shū)的源代碼轉(zhuǎn)換后再進(jìn)行閱讀。C++的程序員,可能在語(yǔ)言上會(huì)有些差異,不過(guò)本書(shū)應(yīng)該不會(huì)因?yàn)檎Z(yǔ)言造成對(duì)面向?qū)ο笏枷氲恼`讀。不是一個(gè)人在戰(zhàn)斗首先要感謝我的妻子李秀芳對(duì)我寫作本書(shū)期間的全力支持,沒(méi)有她的理解和鼓勵(lì),就不可能有本書(shū)的出版。而我們的寶寶也將在2008年初出生,希望等寶寶懂事后能知道,在寶寶的母親懷胎過(guò)程中,寶寶的父親也在為書(shū)的誕生而努力。也希望本書(shū)成為贈(zèng)送給他或者她的最好的禮物。父母的養(yǎng)育才有作者本人的今天,本書(shū)的出版,尋根溯源,也是父母用心教育的結(jié)果。養(yǎng)育之恩,沒(méi)齒難忘。本書(shū)起源于本人在“博客園”網(wǎng)站的博客http://cj723.cnblogs.com/中的一個(gè)連載文章《小菜編程成長(zhǎng)記》。沒(méi)想到連載引起了不小的反應(yīng),網(wǎng)友們普遍認(rèn)為本人的這種技術(shù)寫作方式新穎、有趣、喜歡看。正是因?yàn)楸姸嗑W(wǎng)友的支持,本人有了要把GoF的23種設(shè)計(jì)模式全部成文的沖動(dòng)。非常感謝這些在博客回復(fù)中鼓勵(lì)我的朋友。這里需要特別提及洪立人先生,他是本人在寫書(shū)期間共同為理想奮斗的戰(zhàn)友,寫作也得到了他的大力支持和幫助,我寫作的不少妙句也來(lái)自我們倆共同合作的網(wǎng)站http://www.miaoju.net。在此對(duì)兩位表示衷心的感謝。寫作過(guò)程中,本人參考了許多國(guó)內(nèi)外大師的設(shè)計(jì)模式的著作。尤其是《設(shè)計(jì)模式》(作者:簡(jiǎn)稱GoF的Erich Gamm,Richard Helm,Ralph Johnson,John Vlissides)、《設(shè)計(jì)模式解析》(作者:Alan Shalloway,James R. Trott)、《敏捷軟件開(kāi)發(fā):原則、模式與實(shí)踐》(作者:Robert C.Martin)、《重構(gòu)——改善既有代碼的設(shè)計(jì)》(作者:Martin Fowler)、《重構(gòu)與模式》(作者:Joshua Kerievsky)、《Java與模式》(作者:閻宏等等,沒(méi)有他們的貢獻(xiàn),就沒(méi)有本書(shū)的出版。也希望本書(shū)能成為更好閱讀他們這些大師作品的前期讀物。寫作過(guò)程中,本人還參考了http://www.dofactory.com/ 關(guān)于23個(gè)設(shè)計(jì)模式的講解,并引用了他們的結(jié)構(gòu)圖和基本代碼。在博客園中的許多朋友,比如張逸、呂震宇、李會(huì)軍、idior、Allen Lee的博文,MSDN SmartCast中李建忠的講座,CSDN博客中的大衛(wèi)、ai92的博文,網(wǎng)站J道www.jdon.com 的版主banq的文章都給本人的寫作提供了非常大的指引和幫助,在此表示感謝。另外博客園的雙魚(yú)座先生還對(duì)本人的部分代碼提出了整改意見(jiàn),也表示衷心的謝意。詳細(xì)參考資料與網(wǎng)站鏈接,見(jiàn)附錄二。事實(shí)上,由于本人長(zhǎng)期有看書(shū)記讀書(shū)筆記的習(xí)慣,所以書(shū)中引用筆記的內(nèi)容,也極有可能是來(lái)自某本書(shū)或者某個(gè)朋友的博客、某個(gè)網(wǎng)站的文章。而本人已經(jīng)無(wú)法一一說(shuō)出其引用的地址,但這些作者的智慧同樣對(duì)本書(shū)的寫作帶來(lái)了幫助,在此只能說(shuō)聲謝謝。最后,對(duì)本書(shū)的責(zé)任編輯陳冰先生及清華大學(xué)出版社的相關(guān)工作人員,表示由衷的感謝。本書(shū)的出版離不開(kāi)陳先生的指導(dǎo)和其他工作人員的辛勤工作。程 杰2007年7月序這本書(shū)最初起源于作者程杰在其博客中所寫的連載文章——《小菜編程成長(zhǎng)記》。隨著文章的一篇篇發(fā)布,這些文章新穎的表現(xiàn)形式和獨(dú)特的風(fēng)格受到了眾多讀者的關(guān)注和喜愛(ài),很多人在博客中留下了評(píng)語(yǔ)。有些雖然只有短短的一句話,但也可以看出是對(duì)作者由衷的感謝。作為本書(shū)的策劃編輯,最初我也是在博客園中瀏覽博文時(shí)閱讀到這些文章的,我的直覺(jué)和網(wǎng)友們熱情洋溢的評(píng)語(yǔ)告訴我,這些文章有作為一部書(shū)出版的價(jià)值,于是我就聯(lián)系了程杰。幾個(gè)月后,我拿到了這部書(shū)的初稿。初審后,我發(fā)現(xiàn)書(shū)稿中存在一些問(wèn)題。比如,當(dāng)時(shí)書(shū)稿中還沒(méi)有對(duì)UML類圖進(jìn)行講解的內(nèi)容,這會(huì)導(dǎo)致初學(xué)者學(xué)習(xí)后面的內(nèi)容時(shí)感到理解困難,于是我請(qǐng)作者在第1 章中增加了UML類圖這一節(jié),這是簡(jiǎn)潔卻精彩的一節(jié);另外,當(dāng)時(shí)作者為了便于表達(dá)某些舉例的含義,有相當(dāng)數(shù)量的代碼都是用中文編寫的,雖然中文代碼看似易懂,但卻會(huì)令絕大多數(shù)早已熟悉了英文代碼的程序員們感到困惑和難以閱讀,所以我請(qǐng)作者把代碼改回為程序員們所熟悉的英文代碼,并同時(shí)添加了更詳細(xì)的中文注釋。經(jīng)過(guò)幾番認(rèn)真和辛苦的修改與調(diào)整,現(xiàn)在,這本書(shū)在你的手中了。對(duì)于這本書(shū),我想說(shuō)的是,其中的很多篇章非常的精彩,會(huì)令你禁不住叫好,但也有一些篇章會(huì)顯得有些拖沓,或者是有些牽強(qiáng),然而,隨著你讀過(guò)那些精彩的段落,讀過(guò)那些不那么精彩的段落,最終,你會(huì)讀到書(shū)的最后一頁(yè)(很多書(shū)不能使你做到這一點(diǎn)),當(dāng)你讀完全書(shū)時(shí),你會(huì)發(fā)現(xiàn),你的心情很愉快,很平靜,即使是那些當(dāng)時(shí)看起來(lái)不那么精彩的段落,現(xiàn)在也都成為了這溫馨故事的一部分。你會(huì)記得書(shū)中那個(gè)好學(xué)、天真、而又執(zhí)著的小菜,也會(huì)記得那個(gè)善于啟發(fā),經(jīng)驗(yàn)老道的大鳥(niǎo)。下面這些是來(lái)自作者博客的網(wǎng)友評(píng)論,看完這些熱情洋溢的評(píng)論,就和作者一起,進(jìn)入設(shè)計(jì)模式的大話境界吧。本書(shū)策劃編輯 陳冰2007年10月18日網(wǎng)友評(píng)論daigua:看到這篇精彩的成長(zhǎng)記,我連飯都不想吃了,什么事都不想做,就想把它看完。寫得太好了!是啊,現(xiàn)在很多教材都太枯燥了,不好理解。其實(shí)書(shū)的意義就在于讓人學(xué)到知識(shí),而不在于用什么方式,為什么一定要那么教條呢,只要能讓人比較容易地學(xué)到書(shū)里的知識(shí)就是一本好書(shū)。謝謝你啊,給了我很大的信心。我現(xiàn)在很有信心把編程進(jìn)行到底,哈哈。光頭小松鼠:絕對(duì)經(jīng)典!一篇小故事,把程序的靈活性、可擴(kuò)展性、可維護(hù)、可復(fù)用等說(shuō)得怎一個(gè)妙字了得!沉默天蝎:感激,讓我這個(gè)菜鳥(niǎo)頓悟。這樣的寫法太好了,如果老大你出書(shū),我肯定購(gòu)買!碳碳:這種學(xué)習(xí)的方式真的很神奇,盡管每個(gè)人都能想到,但不是每個(gè)人都能做到?;蛟S可以把系列文章歸檔出書(shū),說(shuō)不定會(huì)收到追捧,呵呵。Bryant:真的是太棒了!我原來(lái)看過(guò)一些有關(guān)設(shè)計(jì)模式的書(shū),都覺(jué)得太抽象,根本就不能理解,也不知道啥時(shí)候能用上。看過(guò)你寫的這些文章,才知道了應(yīng)該怎樣在實(shí)際中運(yùn)用這些模式,而且文筆非常的幽默,享受!Thx ^_^ 支持!有個(gè)建議,最好慢慢地把所有的設(shè)計(jì)模式都聊聊!Bryant:不錯(cuò),樓主說(shuō)的非常幽默,通俗,把我們一步一步帶入面向?qū)ο蟮氖澜?thx ^_^Bryant:太棒了,我正是這樣初學(xué)設(shè)計(jì)模式的小菜,需要這樣的文章,謝謝樓主!菜鳥(niǎo)飛:樓主,加油,支持你。在這里獻(xiàn)上崇高的敬意,不管你有沒(méi)有感受到我摯熱的目光。請(qǐng)你相信,有這樣一些人一直在默默地關(guān)注著你,期待著你。wdx2008:非常好?。。∮哪?,搞笑,易懂,真神人也,鬼神不可測(cè)!支持樓主!!空明流轉(zhuǎn):呵呵,樓主說(shuō)得蠻好。國(guó)外的文章好就好在有例子,“廢話”多,所以比較好理解。至于行文風(fēng)格嘛,這個(gè)倒是因人而異的。我個(gè)人就偏向于論文式的行文風(fēng)格,邏輯嚴(yán)密,層層遞進(jìn),闡述也很清晰。就有點(diǎn)像有序數(shù)組,二分法就能輕松查找到自己想要的東西,但國(guó)內(nèi)的那種論文式的文章,呵呵,我看是賣弄的成分居多,實(shí)作的成分偏少,所以才那么難讀的吧。Char:現(xiàn)在的大學(xué)就缺少這種既通俗易懂,又有內(nèi)容的東西。Apple:不錯(cuò),學(xué)習(xí)了。希望博主能再接再厲多寫點(diǎn),看了很多書(shū)都沒(méi)有看你的文章明白得快。SnowDoggie:呵呵,挺好的。其實(shí)要想找個(gè)絕對(duì)沒(méi)有漏洞的例子是很辛苦的,關(guān)鍵在于文章本身能說(shuō)明問(wèn)題,能體現(xiàn)作者的意圖就足夠了。昨天和朋友一起爬山的時(shí)候還討論了你的文章風(fēng)格,其實(shí)最有用的還是你這種寓教于樂(lè),步步深入的風(fēng)格,陽(yáng)春白雪的經(jīng)典雖然是經(jīng)典,大眾卻不見(jiàn)得喜歡。Jerry:不錯(cuò)的文章,簡(jiǎn)單明了,又不乏趣味,好的文章就得頂下。izhizhe2000:很好,整個(gè)系列寫完之后可以出書(shū)了,保證受大學(xué)生的廣泛歡迎!mekong:很是欣賞這樣幽默風(fēng)趣又不失睿智深刻的文字。Wuyisky:呵呵,樓主不僅程序?qū)懙煤?,而且還有文學(xué)天賦。佩服!Jack:真正的高手是用最生動(dòng)的語(yǔ)言,最簡(jiǎn)單的例子,這才是真正的“深入淺出”。贊?。?!老兄,加油,繼續(xù)喲。BoyLee:人才,愛(ài)死你了。做了一年外包,沒(méi)技術(shù)含量。正打算從頭學(xué)習(xí)這些東西,這樣的方式我最喜歡了。Leoxu:很不錯(cuò),對(duì)正在找工作的我有很大的幫助。以后會(huì)多來(lái)光顧。Ame:寫得承上啟下,始終有一主干線貫穿,作者的文字功底很強(qiáng)??!Artech:我很喜歡你的寫作風(fēng)格!以一種調(diào)侃的方式講明一個(gè)深?yuàn)W的問(wèn)題。我一直在嘗試如何以一種讓每個(gè)人都懂得的語(yǔ)言來(lái)向大家分享我所理解的.NET。你給了我一個(gè)啟發(fā)。8:醍醐灌頂!感謝,領(lǐng)悟了不少東西?。。ufengly:真是太容易理解了,而且看后印象深刻,繼續(xù)努力!期待下文……支持作者!Sopper:支持,例子舉得很形象,寫得很棒,以后會(huì)常來(lái)關(guān)注。d:會(huì)技術(shù)的高人有很多,但能把技術(shù)講得如此通俗易懂的高人并不多,你是一個(gè),謝謝~~~white.wu:非常喜歡您這種授人以“漁”的文章。Answer:強(qiáng)啊,本菜鳥(niǎo)受益很大,謝謝。Hanlei:強(qiáng),很受益啊,感謝樓主,寫出這么好的文章來(lái)。金色海洋(jyk):繼續(xù)呀,我們期待中……,寫得很好,一看就懂。DSharp:看博客園這么久了,終于看到一篇有中國(guó)特色的好文。

內(nèi)容概要

本書(shū)通篇都是以情景對(duì)話的形式,用多個(gè)小故事或編程示例來(lái)組織講解GoF(設(shè)計(jì)模式的經(jīng)典名著——Design Patterns:Elements of Reusable Object-Oriented Software,中譯本名為《設(shè)計(jì)模式——可復(fù)用面向?qū)ο筌浖幕A(chǔ)》的四位作者Erich Gamma、Richard Helm、Ralph Johnson,以及John Vlissides,這四人常被稱為Gang of Four,即四人組,簡(jiǎn)稱GoF)總結(jié)的23個(gè)設(shè)計(jì)模式。本書(shū)共分為29章。其中,第1、3、4、5章著重講解了面向?qū)ο蟮囊饬x、好處以及幾個(gè)重要的設(shè)計(jì)原則;第2章,以及第6到第28章詳細(xì)講解了23個(gè)設(shè)計(jì)模式;第29章是對(duì)設(shè)計(jì)模式的全面總結(jié)。附錄部分是通過(guò)一個(gè)例子的演變?yōu)槌鯇W(xué)者介紹了面向?qū)ο蟮幕靖拍?。本?shū)的特色是通過(guò)小菜與大鳥(niǎo)的趣味問(wèn)答,在講解程序的不斷重構(gòu)和演變過(guò)程中,把設(shè)計(jì)模式的學(xué)習(xí)門檻降低,讓初學(xué)者可以更加容易地理解——為什么這樣設(shè)計(jì)才是好的?是怎樣想到這樣設(shè)計(jì)的?以達(dá)到不但授之以“魚(yú)”,還授之以“漁”的目的。引導(dǎo)讀者體會(huì)設(shè)計(jì)演變過(guò)程中蘊(yùn)藏的大智慧?! ”緯?shū)適合編程初學(xué)者或希望在面向?qū)ο缶幊躺嫌兴岣叩拈_(kāi)發(fā)人員閱讀。

作者簡(jiǎn)介

程杰,高級(jí)軟件工程師&高級(jí)培訓(xùn)講師。從事軟件開(kāi)發(fā)一線工作近八年時(shí)間。曾在申銀萬(wàn)國(guó)證券公司、上海楊浦區(qū)政府、朝華集團(tuán)下屬網(wǎng)游公司、香港晨興集團(tuán)等多行業(yè)項(xiàng)目開(kāi)發(fā)中擔(dān)任主程及項(xiàng)目負(fù)責(zé)人,有豐富的大中型軟件開(kāi)發(fā)經(jīng)驗(yàn),以及多年的軟件設(shè)計(jì)與項(xiàng)目管理經(jīng)驗(yàn)。曾任加拿大慧

書(shū)籍目錄

第1章  代碼無(wú)錯(cuò)就是優(yōu)?——簡(jiǎn)單工廠模式     1.1  面試受挫     1.2  初學(xué)者代碼毛病     1.3  代碼規(guī)范     1.4  面向?qū)ο缶幊?    1.5  活字印刷,面向?qū)ο?    1.6  面向?qū)ο蟮暮锰?    1.7  復(fù)制vs.復(fù)用     1.8  業(yè)務(wù)的封裝    1.9  緊耦合vs.松耦合     1.10  簡(jiǎn)單工廠模式     1.11  UML類圖    第2章  商場(chǎng)促銷——策略模式    2.1  商場(chǎng)收銀軟件     2.2  增加打折     2.3  簡(jiǎn)單工廠實(shí)現(xiàn)     2.4  策略模式    2.5  策略模式實(shí)現(xiàn)     2.6  策略與簡(jiǎn)單工廠結(jié)合     2.7  策略模式解析    第3章  拍攝UFO——單一職責(zé)原則     3.1  新手機(jī)     3.2  拍攝     3.3  沒(méi)用的東西     3.4  單一職責(zé)原則     3.5  方塊游戲的設(shè)計(jì)     3.6  手機(jī)職責(zé)過(guò)多嗎?    第4章  考研求職兩不誤——開(kāi)放-封閉原則     4.1  考研失敗     4.2  開(kāi)放-封閉原則     4.3  何時(shí)應(yīng)對(duì)變化     4.4  兩手準(zhǔn)備,并全力以赴    第5章  會(huì)修電腦不會(huì)修收音機(jī)?——依賴倒轉(zhuǎn)原則     5.1  MM請(qǐng)求修電腦     5.2  電話遙控修電腦     5.3  依賴倒轉(zhuǎn)原則     5.4  里氏代換原則     5.5  修收音機(jī)    第6章  穿什么有這么重要?——裝飾模式     6.1  穿什么有這么重要?     6.2  小菜扮靚第一版     6.3  小菜扮靚第二版     6.4  裝飾模式     6.5  小菜扮靚第三版     6.6  裝飾模式總結(jié)    第7章  為別人做嫁衣——代理模式     7.1  為別人做嫁衣!     7.2  沒(méi)有代理的代碼     7.3  只有代理的代碼     7.4  符合實(shí)際的代碼     7.5  代理模式     7.6  代理模式應(yīng)用     7.7  秀才讓小六代其求婚    第8章  雷鋒依然在人間——工廠方法模式     8.1  再現(xiàn)活雷鋒     8.2  簡(jiǎn)單工廠模式實(shí)現(xiàn)     8.3  工廠方法模式實(shí)現(xiàn)     8.4  簡(jiǎn)單工廠vs.工廠方法     8.5  雷鋒工廠    第9章  簡(jiǎn)歷復(fù)印——原型模式     9.1  夸張的簡(jiǎn)歷     9.2  簡(jiǎn)歷代碼初步實(shí)現(xiàn)     9.3  原型模式     9.4  簡(jiǎn)歷的原型實(shí)現(xiàn)     9.5  淺復(fù)制與深復(fù)制     9.6  簡(jiǎn)歷的深復(fù)制實(shí)現(xiàn)     9.7  復(fù)制簡(jiǎn)歷vs.手寫求職信    第10章  考題抄錯(cuò)會(huì)做也白搭——模板方法模式     10.1  選擇題不會(huì)做,蒙唄!     10.2  重復(fù)=易錯(cuò)+難改     10.3  提煉代碼     10.4  模板方法模式     10.5  模板方法模式特點(diǎn)     10.6  主觀題,看你怎么蒙   第11章  無(wú)熟人難辦事?——迪米特法則     11.1  第一天上班     11.2  無(wú)熟人難辦事     11.3  迪米特法則    第12章  牛市股票還會(huì)虧錢?——外觀模式     12.1  牛市股票還會(huì)虧錢?     12.2  股民炒股代碼     12.3  投資基金代碼     12.4  外觀模式     12.5  何時(shí)使用外觀模式    第13章  好菜每回味不同——建造者模式     13.1  炒面沒(méi)放鹽     13.2  建造小人一     13.3  建造小人二     13.4  建造者模式     13.5  建造者模式解析     13.6  建造者模式基本代碼    第14章  老板回來(lái),我不知道——觀察者模式     14.1  老板回來(lái)?我不知道!     14.2  雙向耦合的代碼     14.3  解耦實(shí)踐一     14.4  解耦實(shí)踐二     14.5  觀察者模式     14.6  觀察者模式特點(diǎn)     14.7  觀察者模式的不足     14.8  事件委托實(shí)現(xiàn)     14.9  事件委托說(shuō)明     14.10  石守吉失手機(jī)后的委托    第15章  就不能不換DB嗎?——抽象工廠模式     15.1  就不能不換DB嗎?     15.2  最基本的數(shù)據(jù)訪問(wèn)程序     15.3  用了工廠方法模式的數(shù)據(jù)訪問(wèn)程序     15.4  用了抽象工廠模式的數(shù)據(jù)訪問(wèn)程序     15.5  抽象工廠模式     15.6  抽象工廠模式的優(yōu)點(diǎn)與缺點(diǎn)     15.7  用簡(jiǎn)單工廠來(lái)改進(jìn)抽象工廠     15.8  用反射+抽象工廠的數(shù)據(jù)訪問(wèn)程序     15.9  用反射+配置文件實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)程序     15.10  無(wú)癡迷,不成功    第16章  無(wú)盡加班何時(shí)休——狀態(tài)模式     16.1  加班,又是加班!     16.2  工作狀態(tài)-函數(shù)版     16.3  工作狀態(tài)-分類版     16.4  方法過(guò)長(zhǎng)是壞味道     16.5  狀態(tài)模式     16.6  狀態(tài)模式好處與用處     16.7  工作狀態(tài)-狀態(tài)模式版    第17章  在NBA我需要翻譯——適配器模式     17.1  在NBA我需要翻譯!     17.2  適配器模式     17.3  何時(shí)使用適配器模式     17.4  籃球翻譯適配器     17.5  適配器模式的.NET應(yīng)用     17.6  扁鵲的醫(yī)術(shù)    第18章  如果再回到從前——備忘錄模式     18.1  如果再給我一次機(jī)會(huì)……     18.2  游戲存進(jìn)度     18.3  備忘錄模式     18.4  備忘錄模式基本代碼     18.5  游戲進(jìn)度備忘    第19章  分公司=一部門——組合模式     19.1  分公司不就是一部門嗎?     19.2  組合模式     19.3  透明方式與安全方式     19.4  何時(shí)使用組合模式     19.5  公司管理系統(tǒng)     19.6  組合模式好處    第20章  想走?可以!先買票——迭代器模式     20.1  乘車買票,不管你是誰(shuí)!     20.2  迭代器模式     20.3  迭代器實(shí)現(xiàn)     20.4  .NET的迭代器實(shí)現(xiàn)    20.5  迭代高手    第21章  有些類也需計(jì)劃生育——單例模式     21.1  類也需要計(jì)劃生育     21.2  判斷對(duì)象是否是null     21.3  生還是不生是自己的責(zé)任     21.4  單例模式     21.5  多線程時(shí)的單例     21.6  雙重鎖定     21.7  靜態(tài)初始化    第22章  手機(jī)軟件何時(shí)統(tǒng)一——橋接模式     22.1  憑什么你的游戲我不能玩     22.2  緊耦合的程序演化     22.3  合成/聚合復(fù)用原則     22.4  松耦合的程序     22.5  橋接模式     22.6  橋接模式基本代碼     22.7  我要開(kāi)發(fā)“好”游戲    第23章  烤羊肉串引來(lái)的思考——命令模式     23.1  吃烤羊肉串!     23.2  燒烤攤vs.燒烤店     23.3  緊耦合設(shè)計(jì)     23.4  松耦合設(shè)計(jì)     23.5  松耦合后     23.6  命令模式     23.7  命令模式作用    第24章  加薪非要老總批?——職責(zé)鏈模式     24.1  老板,我要加薪!     24.2  加薪代碼初步     24.3  職責(zé)鏈模式     24.4  職責(zé)鏈的好處     24.5  加薪代碼重構(gòu)     24.6  加薪成功    第25章  世界需要和平——中介者模式     25.1  世界需要和平!     25.2  中介者模式     25.3  安理會(huì)做中介     25.4  中介者模式優(yōu)缺點(diǎn)    第26章  項(xiàng)目多也別傻做——享元模式     26.1  項(xiàng)目多也別傻做!     26.2  享元模式     26.3  網(wǎng)站共享代碼     26.4  內(nèi)部狀態(tài)與外部狀態(tài)     26.5  享元模式應(yīng)用    第27章  其實(shí)你不懂老板的心——解釋器模式     27.1  其實(shí)你不懂老板的心     27.2  解釋器模式     27.3  解釋器模式好處     27.4  音樂(lè)解釋器     27.5  音樂(lè)解釋器實(shí)現(xiàn)     27.6  料事如神    第28章  男人和女人——訪問(wèn)者模式     28.1  男人和女人!     28.2  最簡(jiǎn)單的編程實(shí)現(xiàn)     28.3  簡(jiǎn)單的面向?qū)ο髮?shí)現(xiàn)     28.4  用了模式的實(shí)現(xiàn)     28.5  訪問(wèn)者模式     28.6  訪問(wèn)者模式基本代碼     28.7  比上不足,比下有余    第29章  OOTV杯超級(jí)模式大賽——模式總結(jié)     29.1  演講任務(wù)     29.2  報(bào)名參賽     29.3  超模大賽開(kāi)幕式     29.4  創(chuàng)建型模式比賽     29.5  結(jié)構(gòu)型模式比賽     29.6  行為型模式一組比賽     29.7  行為型模式二組比賽     29.8  決賽     29.9  夢(mèng)醒時(shí)分     29.10  沒(méi)有結(jié)束的結(jié)尾    附錄 A  培訓(xùn)實(shí)習(xí)生——面向?qū)ο蠡A(chǔ)     A.1  培訓(xùn)實(shí)習(xí)生     A.2  類與實(shí)例     A.3  構(gòu)造方法     A.4  方法重載     A.5  屬性與修飾符     A.6  封裝     A.7  繼承     A.8  多態(tài)     A.9  重構(gòu)     A.10  抽象類     A.11  接口     A.12  集合     A.13  泛型     A.14  委托與事件     A.15  客套    附錄 B  參考文獻(xiàn)

章節(jié)摘錄

插圖:

媒體關(guān)注與評(píng)論

前言本書(shū)是一本程序集?NO。本書(shū)是一本故事集?NO。本書(shū)是一本通過(guò)故事講述程序如何設(shè)計(jì)的方法集。本書(shū)是給連Hello World都沒(méi)寫過(guò)的非程序員看的書(shū)嗎?NO。本書(shū)是給玩過(guò)穿孔紙帶(0/1)、寫過(guò)匯編、BASIC、C、C++、Delphi、Java、C#等語(yǔ)言,開(kāi)發(fā)過(guò)覆蓋全球、使用人數(shù)過(guò)億、數(shù)百萬(wàn)行代碼等大型系統(tǒng)的骨灰級(jí)程序員看的書(shū)嗎?NO。本書(shū)希望能給渴望了解OO世界的初學(xué)者、困惑于僵硬、脆弱、無(wú)法復(fù)用的代碼編程體驗(yàn)者、一直打著OO編程的旗號(hào),做著過(guò)程式開(kāi)發(fā)的基于對(duì)象的編程實(shí)踐者一些好的建議和提示。本書(shū)起因?qū)懕緯?shū)源于我一次做培訓(xùn)的經(jīng)歷,學(xué)生大多是計(jì)算機(jī)專業(yè)的學(xué)生或有過(guò)一定經(jīng)驗(yàn)的在職開(kāi)發(fā)者。他們都知道類、方法、構(gòu)造方法、甚至抽象類、接口等概念,并用Visual Studio寫過(guò)不少的Windows或Web程序,可是當(dāng)我提問(wèn)為什么要用面向?qū)ο?,它的好處在哪里時(shí),卻沒(méi)有人能完整地講得出來(lái),多數(shù)人的反應(yīng)是,概念知道的,就是表達(dá)不清楚。針對(duì)于此,我就舉了中國(guó)古代的四大發(fā)明中活字印刷的例子(見(jiàn)第1章),通過(guò)一個(gè)虛構(gòu)的三國(guó)曹操做詩(shī)的情景,把面向?qū)ο蟮膸状蠛锰幹v解了一下,學(xué)生普遍都感覺(jué)通俗易懂,覺(jué)得這樣的教學(xué)比直接告訴面向?qū)ο笥惺裁春锰幰尤菀桌斫夂陀洃?。這就使得我不斷地思考這樣一個(gè)問(wèn)題,學(xué)一門技術(shù)是否需要趣味性、通俗性的引導(dǎo)。我在思考中發(fā)現(xiàn),看小說(shuō)時(shí),一般情況下我都可以完整地讀完它,而閱讀技術(shù)方面的圖書(shū),卻很少有真正的每章每頁(yè)的仔細(xì)閱讀。盡管這兩者是有很大區(qū)別,技術(shù)書(shū)中可能有不少知識(shí)是已經(jīng)學(xué)會(huì)或暫時(shí)用不上的內(nèi)容,但也不得不承認(rèn),小說(shuō)之所以可以堅(jiān)持讀完是因?yàn)閷?duì)它感興趣,作者的文字吸引你。而有些技術(shù)書(shū)的枯燥乏味使得閱讀產(chǎn)生了困難,通常讀個(gè)前幾章就留待以后再說(shuō)了。技術(shù)課的教學(xué)同樣如此,除非學(xué)生是抱著極大的學(xué)習(xí)動(dòng)機(jī)來(lái)參與其中,否則照本宣科的教學(xué)、枯燥乏味的講解,學(xué)生一定會(huì)被龐雜的概念和復(fù)雜的邏輯攪暈了頭腦,致使效果大打折扣。也正因?yàn)榇耍斐刹糠謱W(xué)生,學(xué)了四年的計(jì)算機(jī)編程,卻可能連面向?qū)ο笥惺裁春锰幎歼€說(shuō)不清。為什么不可以讓技術(shù)書(shū)帶點(diǎn)趣味性呢,哪怕這些趣味性與所講的技術(shù)并不十分貼切,只要不是影響技術(shù)核心的本質(zhì),不產(chǎn)生重大的錯(cuò)誤,讓讀者能輕松閱讀它,并且有了一定的了解和感悟,這要比一本書(shū)寫得高深無(wú)比,卻被長(zhǎng)期束之高閣要好得多。也正是這個(gè)原因,本人開(kāi)始了關(guān)于設(shè)計(jì)模式的趣味性寫作的嘗試。本書(shū)讀者顯然本書(shū)不是給無(wú)任何編程經(jīng)驗(yàn)的人看的,對(duì)于想入這一行的朋友來(lái)說(shuō),找一門編程語(yǔ)言,從頭開(kāi)始或許才是正道。而本書(shū)也不太適合有了多年面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),對(duì)常用的設(shè)計(jì)模式了如指掌的人看的。畢竟這里更多的是一些基礎(chǔ)性的東西。我時(shí)常拿程序員的成長(zhǎng)與足球運(yùn)動(dòng)員的成長(zhǎng)做對(duì)比。GoF的《設(shè)計(jì)模式》好比是世界頂級(jí)足球射門集錦,《重構(gòu)》、《敏捷軟件開(kāi)發(fā)》、《設(shè)計(jì)模式解析》好比是一場(chǎng)場(chǎng)最精彩的足球比賽。我為之瘋狂,為之著迷。可是我并不只是想做一個(gè)球迷(軟件使用者),而是更希望自己能成為一個(gè)足球運(yùn)動(dòng)員(軟件設(shè)計(jì)編程者),能夠親自上場(chǎng)比賽,并且最終能成為球星(軟件架構(gòu)師)。我仔細(xì)地閱讀這些被譽(yù)為經(jīng)典的著作,認(rèn)真地實(shí)踐其中代碼,但是我總是半途而廢、堅(jiān)持不下去,我痛恨自己意志力的薄弱、憎惡自己無(wú)端地放棄,難道我真的就是那么的笨?痛定思痛,反思悔過(guò)。我終于發(fā)現(xiàn),貝利、馬拉多納不管老、胖是用來(lái)敬仰的,貝克漢姆、羅納爾迪尼奧不管美、丑是用來(lái)欣賞的,但他們的球技……嗨,客氣地說(shuō),是不容易學(xué)會(huì)的,客觀地說(shuō),是不可能學(xué)得會(huì)的。為什么會(huì)這樣?原來(lái),我學(xué)習(xí)中缺了一個(gè)很重要的環(huán)節(jié),我們?cè)诳吹搅司实那蛸悾蕾p球星高超球技的同時(shí),卻忽略了球星的成長(zhǎng)過(guò)程。他們盡管有一定天分,但卻也是從最底層通過(guò)努力一點(diǎn)一點(diǎn)慢慢顯露出來(lái)的,我們需要的不僅僅是世界杯上的那定乾坤的一腳,更需要這一腳之前是如何練出那種神奇的方法,對(duì)于程序員來(lái)講,精彩的代碼是如何想出來(lái)的,要比看到精彩的代碼更加令人期待。本書(shū)顯然不是培養(yǎng)足球明星(軟件架構(gòu)師)的俱樂(lè)部,而是訓(xùn)練足球基本功的學(xué)校,培訓(xùn)的是初學(xué)足球的小球員(面向?qū)ο蟮某绦騿T),本書(shū)希望的是讀者閱讀后可以打好面向?qū)ο蟮幕A(chǔ),從而更加容易并深入的去理解和感受GoF的《設(shè)計(jì)模式》以及其他大師作品的魅力。本書(shū)定位本書(shū)是在學(xué)習(xí)眾多大師智慧結(jié)晶的圖書(shū)作品、分享了網(wǎng)上多位朋友的實(shí)踐經(jīng)驗(yàn)的基礎(chǔ)上,加之自己的編程感受寫出來(lái)的。正如牛頓有句名言:“如果說(shuō)我比別人看得更遠(yuǎn)些,那是因?yàn)槲艺驹诹司奕说募缟稀!钡@然,本書(shū)并沒(méi)有創(chuàng)造或發(fā)現(xiàn)什么模式,因此談不上站在巨人肩膀上看得更遠(yuǎn)。所以作者更希望本書(shū)能成為一些準(zhǔn)備攀登面向?qū)ο缶幊谈叻宓呐笥训牡巧揭啡?、提攜者,在您登山途中迷路時(shí)給予指引,在您峭壁攀巖摔跤時(shí)給予保護(hù)。本書(shū)特色本書(shū)有兩個(gè)特色,第一特色是重視過(guò)程??戳颂嗟挠?jì)算機(jī)編程類的圖書(shū),大多數(shù)書(shū)籍都是集中在講授優(yōu)秀的解決方案或者一個(gè)完美的程序樣例,但對(duì)這些解決方案和程序的演變過(guò)程卻重視不夠,好書(shū)之所以好,就是因?yàn)樽髡呖梢哉驹趯W(xué)習(xí)者的角度去講解問(wèn)題所在,讓學(xué)習(xí)門檻降低?!吨貥?gòu)與模式》中有一句經(jīng)典之語(yǔ):“如果想成為一名更優(yōu)秀的軟件設(shè)計(jì)師,了解優(yōu)秀軟件設(shè)計(jì)的演變過(guò)程比學(xué)習(xí)優(yōu)秀設(shè)計(jì)本身更有價(jià)值,因?yàn)樵O(shè)計(jì)的演變過(guò)程中蘊(yùn)藏著大智慧?!北救司拖M芡ㄟ^(guò)小菜與大鳥(niǎo)的對(duì)話,在不斷地提問(wèn)與回答過(guò)程中,在程序的不斷重構(gòu)演變中,把設(shè)計(jì)模式的學(xué)習(xí)門檻降低,讓初學(xué)者可以更加容易地理解,為什么這樣設(shè)計(jì)才是好,是如何想到這樣設(shè)計(jì)的。本書(shū)的第二個(gè)特色就是貼近生活。盡管編程是嚴(yán)謹(jǐn)?shù)?,不容大話和戲說(shuō)。但生活卻是多姿多彩的,而設(shè)計(jì)模式也不是完全孤立于現(xiàn)實(shí)世界而憑空想出來(lái)的理論。事實(shí)上所有的模式都可以在生活中找到對(duì)應(yīng)。因此,通過(guò)主人公小菜和大鳥(niǎo)的對(duì)話,將求職、面試、工作、交友、投資、兼職、辦公室文化、生活百味等等非常接近程序員生活原貌的場(chǎng)景寫到了書(shū)中,用一個(gè)個(gè)小故事來(lái)引出模式,會(huì)讓讀者相對(duì)輕松地進(jìn)入學(xué)習(xí)設(shè)計(jì)模式的狀態(tài)。當(dāng)然,此舉的最大目的還是為了深入淺出,而非純粹噱頭。本書(shū)內(nèi)容本書(shū)通篇都是以情景對(duì)話的形式,用一個(gè)又一個(gè)的小故事或編程示例來(lái)組織的。共分為四個(gè)部分。第一部分是面向?qū)ο蟮囊饬x和好處以及幾個(gè)重要的設(shè)計(jì)原則,通過(guò)小菜面試的失敗引出;第二部分是詳細(xì)講解23個(gè)設(shè)計(jì)模式;第三部分是對(duì)設(shè)計(jì)模式的總結(jié),利用小菜夢(mèng)到的超級(jí)模式大賽的場(chǎng)景,把所有的面向?qū)ο蠛湍J礁拍疃紨M人化來(lái)趣味性的總結(jié)設(shè)計(jì)模式之間的異同和關(guān)鍵點(diǎn)。第四部分是附錄,主要是針對(duì)對(duì)面向?qū)ο蟛皇煜ぷx者的一個(gè)補(bǔ)充,通過(guò)一個(gè)例子的演變介紹了類、封裝、繼承、多態(tài)、接口、事件等概念。本書(shū)人物及背景小菜:原名蔡遙,22歲,上海人,上海某大學(xué)計(jì)算機(jī)專業(yè)大學(xué)四年級(jí)學(xué)生,成績(jī)一般,考研剛結(jié)束,即將畢業(yè),正求職找工作。大鳥(niǎo):原名李大遼,29歲,小菜的表哥,云南昆明人,畢業(yè)后長(zhǎng)期從事軟件開(kāi)發(fā)和管理工作,近期到上海發(fā)展,借住小菜家在寶山的空套房?jī)?nèi)。小菜以向大鳥(niǎo)學(xué)習(xí)為由,也從市區(qū)父母家搬到寶山與大鳥(niǎo)同住。本書(shū)研讀方法本書(shū)建議按順序閱讀,如果您感覺(jué)由于面向?qū)ο笾R(shí)的匱乏,例如對(duì)繼承、多態(tài)、接口、抽象類的理解不足,造成閱讀上的困難,不妨先閱讀附錄一的“培訓(xùn)實(shí)習(xí)生——面向?qū)ο蠡A(chǔ)”部分,然后再?gòu)牡?章開(kāi)始閱讀。如果您已經(jīng)對(duì)不少設(shè)計(jì)模式熟悉,也不妨挑選不熟悉的模式章節(jié)閱讀。 盡管本書(shū)中的代碼都提供下載,但不經(jīng)過(guò)讀者的自己手動(dòng)輸入過(guò)程,其實(shí)閱讀的效果是大打折扣的。強(qiáng)烈建議讀者根據(jù)樣例自己寫程序,只有在運(yùn)行出錯(cuò),達(dá)不到預(yù)期效果時(shí)再查看本書(shū)提供的源程序,這樣或許才是最好的學(xué)習(xí)方法。有問(wèn)題可及時(shí)與我聯(lián)系。我的電子郵箱是chengjielong@163.com,博客是http://cj723.cnblogs.com/。本書(shū)中的很多精華都來(lái)自許多大師作品,建議讀者通過(guò)筆記形式記錄,這將有助于您的記憶和理解設(shè)計(jì)模式,增強(qiáng)最終的讀書(shū)效果。本書(shū)中出現(xiàn)的“[ ]”是表示句子摘自某書(shū)。例如,“策略模式(Strategy):它定義了算法家族,分別封裝起來(lái),讓它們之間可以互相替換,此模式讓算法的變化不會(huì)影響到使用算法的客戶[DP]。”其中“[DP]”表示此名摘自《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》,詳細(xì)摘要說(shuō)明請(qǐng)參看附錄二。本書(shū)中29章中的虛擬人物姓名都是軟件編程中的專業(yè)術(shù)語(yǔ),因此凡是專業(yè)術(shù)語(yǔ)被指向人物姓名的都用斜體字表示,以和實(shí)際術(shù)語(yǔ)區(qū)分。例如,“第一位是我們OOTV創(chuàng)始人,面向?qū)ο笙壬保@里的斜體字面向?qū)ο笾溉嗣?。關(guān)于本書(shū)學(xué)習(xí)的疑問(wèn)解答看本書(shū)需要什么基礎(chǔ)?主要是C#或其他編程語(yǔ)言的基礎(chǔ)知識(shí),如變量、分支判斷、循環(huán)、函數(shù)等編程基礎(chǔ),關(guān)于面向?qū)ο蠡A(chǔ)可參看本書(shū)的附錄一。設(shè)計(jì)模式是否有必要全部學(xué)一遍?答案是,Yes!別被那些說(shuō)什么設(shè)計(jì)模式大多用不上,根本不用全學(xué)的輿論所左右。盡管現(xiàn)在設(shè)計(jì)模式遠(yuǎn)遠(yuǎn)不止23種,對(duì)所有都有研究是不太容易的,但就像作者本人一樣,在學(xué)習(xí)GoF總結(jié)的23個(gè)設(shè)計(jì)模式過(guò)程中,你會(huì)被那些編程大師們進(jìn)行偉大的技術(shù)思想洗禮,不斷增加自己對(duì)面向?qū)ο蟮纳钊肜斫?,從而更好的把這種思想發(fā)揚(yáng)光大。這就如同高中時(shí)學(xué)立體幾何感覺(jué)沒(méi)用,但當(dāng)你裝修好房子購(gòu)買家俱時(shí)才知道,有空間感,懂得空間計(jì)算是如何的重要,你完全可能遇到買了一個(gè)大號(hào)的冰箱卻放不進(jìn)廚房,或買了開(kāi)關(guān)門的衣櫥(移門不占空間)卻因床在旁邊堵住了門而打不開(kāi)的尷尬。重要的不是你將來(lái)會(huì)不會(huì)用到這些模式,而是通過(guò)這些模式讓你找到“封裝變化”、“對(duì)象間松散耦合”、“針對(duì)接口編程”的感覺(jué),從而設(shè)計(jì)出易維護(hù)、易擴(kuò)展、易復(fù)用、靈活性好的程序。成為詩(shī)人后可能不需要刻意地按照某種模式去創(chuàng)作,但成為詩(shī)人前他們一定是認(rèn)真地研究過(guò)成百上千的唐詩(shī)宋詞、古今名句。如果說(shuō),數(shù)學(xué)是思維的體操,那設(shè)計(jì)模式,就是面向?qū)ο缶幊趟季S的體操。我學(xué)了設(shè)計(jì)模式后時(shí)常會(huì)過(guò)度設(shè)計(jì),如何辦?作者建議,暫時(shí)現(xiàn)象,繼續(xù)努力。設(shè)計(jì)模式有四境界:1.沒(méi)學(xué)前是一點(diǎn)不懂,根本想不到用設(shè)計(jì)模式,設(shè)計(jì)的代碼很糟糕;2.學(xué)了幾個(gè)模式后,很開(kāi)心,于是到處想著要用自己學(xué)過(guò)的模式,于是時(shí)常造成誤用模式而不     自知;3.學(xué)完全部模式時(shí),感覺(jué)諸多模式極其相似,無(wú)法分清模式之間的差異,有困惑,但深知誤用之害,應(yīng)用之時(shí)有所猶豫;4.靈活應(yīng)用模式,甚至不應(yīng)用具體的某種模式也能設(shè)計(jì)出非常優(yōu)秀的代碼,以達(dá)到無(wú)劍勝有劍的境界。從作者本人的觀點(diǎn)來(lái)說(shuō),不會(huì)用設(shè)計(jì)模式的人要遠(yuǎn)遠(yuǎn)超過(guò)過(guò)度使用設(shè)計(jì)模式的人,從這個(gè)角度講,因?yàn)榕逻^(guò)度設(shè)計(jì)而不用設(shè)計(jì)模式顯然是因噎廢食。當(dāng)你認(rèn)識(shí)到自己有過(guò)度使用模式的時(shí)候,那就證明你已意識(shí)到問(wèn)題的存在,只有通過(guò)不斷的鉆研和努力,你才能突破“不識(shí)廬山真面目,只緣身在此山中”的瓶頸,達(dá)到“會(huì)當(dāng)凌絕頂,一覽眾山小”的境界。編程語(yǔ)言的差異本書(shū)講的是面向?qū)ο笤O(shè)計(jì)模式,是用.NET中的C#語(yǔ)言編寫,但本書(shū)并不是主要講解C#語(yǔ)言或.NET框架的圖書(shū),因此本書(shū)同樣適合Java、VB.NET、C++等其他一些面向?qū)ο笳Z(yǔ)言的讀者閱讀來(lái)學(xué)習(xí)設(shè)計(jì)模式。就Java而言,主要差異來(lái)自C#對(duì)于子類繼承父類或?qū)崿F(xiàn)接口用的都是“:”,而Java中兩者是有區(qū)別的。當(dāng)Cat繼承抽象類Animal時(shí),Java語(yǔ)法是public class Cat extends Animal當(dāng)Superman實(shí)現(xiàn)接口IFly時(shí),Java語(yǔ)法是public class Superman implements IFly然后Java中所有的方法都是虛擬的,因此不用指定new或是override修飾符。還有一些其他差異,但基本都不影響本書(shū)的閱讀。對(duì)于VB.NET的程序員,如果閱讀困難,不妨去網(wǎng)上查找關(guān)于轉(zhuǎn)換C#與VB.Net語(yǔ)言的工具,比如http://www.kamalpatel.net/ConvertCSharp2VB.aspx,將下載本書(shū)的源代碼轉(zhuǎn)換后再進(jìn)行閱讀。C++的程序員,可能在語(yǔ)言上會(huì)有些差異,不過(guò)本書(shū)應(yīng)該不會(huì)因?yàn)檎Z(yǔ)言造成對(duì)面向?qū)ο笏枷氲恼`讀。不是一個(gè)人在戰(zhàn)斗首先要感謝我的妻子李秀芳對(duì)我寫作本書(shū)期間的全力支持,沒(méi)有她的理解和鼓勵(lì),就不可能有本書(shū)的出版。而我們的寶寶也將在2008年初出生,希望等寶寶懂事后能知道,在寶寶的母親懷胎過(guò)程中,寶寶的父親也在為書(shū)的誕生而努力。也希望本書(shū)成為贈(zèng)送給他或者她的最好的禮物。父母的養(yǎng)育才有作者本人的今天,本書(shū)的出版,尋根溯源,也是父母用心教育的結(jié)果。養(yǎng)育之恩,沒(méi)齒難忘。本書(shū)起源于本人在“博客園”網(wǎng)站的博客http://cj723.cnblogs.com/中的一個(gè)連載文章《小菜編程成長(zhǎng)記》。沒(méi)想到連載引起了不小的反應(yīng),網(wǎng)友們普遍認(rèn)為本人的這種技術(shù)寫作方式新穎、有趣、喜歡看。正是因?yàn)楸姸嗑W(wǎng)友的支持,本人有了要把GoF的23種設(shè)計(jì)模式全部成文的沖動(dòng)。非常感謝這些在博客回復(fù)中鼓勵(lì)我的朋友。這里需要特別提及洪立人先生,他是本人在寫書(shū)期間共同為理想奮斗的戰(zhàn)友,寫作也得到了他的大力支持和幫助,我寫作的不少妙句也來(lái)自我們倆共同合作的網(wǎng)站http://www.miaoju.net。在此對(duì)兩位表示衷心的感謝。寫作過(guò)程中,本人參考了許多國(guó)內(nèi)外大師的設(shè)計(jì)模式的著作。尤其是《設(shè)計(jì)模式》(作者:簡(jiǎn)稱GoF的Erich Gamm,Richard Helm,Ralph Johnson,John Vlissides)、《設(shè)計(jì)模式解析》(作者:Alan Shalloway,James R. Trott)、《敏捷軟件開(kāi)發(fā):原則、模式與實(shí)踐》(作者:Robert C.Martin)、《重構(gòu)——改善既有代碼的設(shè)計(jì)》(作者:Martin Fowler)、《重構(gòu)與模式》(作者:Joshua Kerievsky)、《Java與模式》(作者:閻宏等等,沒(méi)有他們的貢獻(xiàn),就沒(méi)有本書(shū)的出版。也希望本書(shū)能成為更好閱讀他們這些大師作品的前期讀物。寫作過(guò)程中,本人還參考了http://www.dofactory.com/ 關(guān)于23個(gè)設(shè)計(jì)模式的講解,并引用了他們的結(jié)構(gòu)圖和基本代碼。在博客園中的許多朋友,比如張逸、呂震宇、李會(huì)軍、idior、Allen Lee的博文,MSDN SmartCast中李建忠的講座,CSDN博客中的大衛(wèi)、ai92的博文,網(wǎng)站J道www.jdon.com 的版主banq的文章都給本人的寫作提供了非常大的指引和幫助,在此表示感謝。另外博客園的雙魚(yú)座先生還對(duì)本人的部分代碼提出了整改意見(jiàn),也表示衷心的謝意。詳細(xì)參考資料與網(wǎng)站鏈接,見(jiàn)附錄二。事實(shí)上,由于本人長(zhǎng)期有看書(shū)記讀書(shū)筆記的習(xí)慣,所以書(shū)中引用筆記的內(nèi)容,也極有可能是來(lái)自某本書(shū)或者某個(gè)朋友的博客、某個(gè)網(wǎng)站的文章。而本人已經(jīng)無(wú)法一一說(shuō)出其引用的地址,但這些作者的智慧同樣對(duì)本書(shū)的寫作帶來(lái)了幫助,在此只能說(shuō)聲謝謝。最后,對(duì)本書(shū)的責(zé)任編輯陳冰先生及清華大學(xué)出版社的相關(guān)工作人員,表示由衷的感謝。本書(shū)的出版離不開(kāi)陳先生的指導(dǎo)和其他工作人員的辛勤工作。程  杰   2007年7月序這本書(shū)最初起源于作者程杰在其博客中所寫的連載文章——《小菜編程成長(zhǎng)記》。隨著文章的一篇篇發(fā)布,這些文章新穎的表現(xiàn)形式和獨(dú)特的風(fēng)格受到了眾多讀者的關(guān)注和喜愛(ài),很多人在博客中留下了評(píng)語(yǔ)。有些雖然只有短短的一句話,但也可以看出是對(duì)作者由衷的感謝。作為本書(shū)的策劃編輯,最初我也是在博客園中瀏覽博文時(shí)閱讀到這些文章的,我的直覺(jué)和網(wǎng)友們熱情洋溢的評(píng)語(yǔ)告訴我,這些文章有作為一部書(shū)出版的價(jià)值,于是我就聯(lián)系了程杰。幾個(gè)月后,我拿到了這部書(shū)的初稿。初審后,我發(fā)現(xiàn)書(shū)稿中存在一些問(wèn)題。比如,當(dāng)時(shí)書(shū)稿中還沒(méi)有對(duì)UML類圖進(jìn)行講解的內(nèi)容,這會(huì)導(dǎo)致初學(xué)者學(xué)習(xí)后面的內(nèi)容時(shí)感到理解困難,于是我請(qǐng)作者在第1章中增加了UML類圖這一節(jié),這是簡(jiǎn)潔卻精彩的一節(jié);另外,當(dāng)時(shí)作者為了便于表達(dá)某些舉例的含義,有相當(dāng)數(shù)量的代碼都是用中文編寫的,雖然中文代碼看似易懂,但卻會(huì)令絕大多數(shù)早已熟悉了英文代碼的程序員們感到困惑和難以閱讀,所以我請(qǐng)作者把代碼改回為程序員們所熟悉的英文代碼,并同時(shí)添加了更詳細(xì)的中文注釋。經(jīng)過(guò)幾番認(rèn)真和辛苦的修改與調(diào)整,現(xiàn)在,這本書(shū)在你的手中了。對(duì)于這本書(shū),我想說(shuō)的是,其中的很多篇章非常的精彩,會(huì)令你禁不住叫好,但也有一些篇章會(huì)顯得有些拖沓,或者是有些牽強(qiáng),然而,隨著你讀過(guò)那些精彩的段落,讀過(guò)那些不那么精彩的段落,最終,你會(huì)讀到書(shū)的最后一頁(yè)(很多書(shū)不能使你做到這一點(diǎn)),當(dāng)你讀完全書(shū)時(shí),你會(huì)發(fā)現(xiàn),你的心情很愉快,很平靜,即使是那些當(dāng)時(shí)看起來(lái)不那么精彩的段落,現(xiàn)在也都成為了這溫馨故事的一部分。你會(huì)記得書(shū)中那個(gè)好學(xué)、天真、而又執(zhí)著的小菜,也會(huì)記得那個(gè)善于啟發(fā),經(jīng)驗(yàn)老道的大鳥(niǎo)。下面這些是來(lái)自作者博客的網(wǎng)友評(píng)論,看完這些熱情洋溢的評(píng)論,就和作者一起,進(jìn)入設(shè)計(jì)模式的大話境界吧。本書(shū)策劃編輯 陳冰2007年10月18日網(wǎng)友評(píng)論daigua:看到這篇精彩的成長(zhǎng)記,我連飯都不想吃了,什么事都不想做,就想把它看完。寫得太好了!是啊,現(xiàn)在很多教材都太枯燥了,不好理解。其實(shí)書(shū)的意義就在于讓人學(xué)到知識(shí),而不在于用什么方式,為什么一定要那么教條呢,只要能讓人比較容易地學(xué)到書(shū)里的知識(shí)就是一本好書(shū)。謝謝你啊,給了我很大的信心。我現(xiàn)在很有信心把編程進(jìn)行到底,哈哈。光頭小松鼠:絕對(duì)經(jīng)典!一篇小故事,把程序的靈活性、可擴(kuò)展性、可維護(hù)、可復(fù)用等說(shuō)得怎一個(gè)妙字了得!沉默天蝎:感激,讓我這個(gè)菜鳥(niǎo)頓悟。這樣的寫法太好了,如果老大你出書(shū),我肯定購(gòu)買!碳碳:這種學(xué)習(xí)的方式真的很神奇,盡管每個(gè)人都能想到,但不是每個(gè)人都能做到。或許可以把系列文章歸檔出書(shū),說(shuō)不定會(huì)收到追捧,呵呵。Bryant:真的是太棒了!我原來(lái)看過(guò)一些有關(guān)設(shè)計(jì)模式的書(shū),都覺(jué)得太抽象,根本就不能理解,也不知道啥時(shí)候能用上??催^(guò)你寫的這些文章,才知道了應(yīng)該怎樣在實(shí)際中運(yùn)用這些模式,而且文筆非常的幽默,享受!Thx ^_^ 支持!有個(gè)建議,最好慢慢地把所有的設(shè)計(jì)模式都聊聊!Bryant:不錯(cuò),樓主說(shuō)的非常幽默,通俗,把我們一步一步帶入面向?qū)ο蟮氖澜?thx ^_^Bryant:太棒了,我正是這樣初學(xué)設(shè)計(jì)模式的小菜,需要這樣的文章,謝謝樓主!菜鳥(niǎo)飛:樓主,加油,支持你。在這里獻(xiàn)上崇高的敬意,不管你有沒(méi)有感受到我摯熱的目光。請(qǐng)你相信,有這樣一些人一直在默默地關(guān)注著你,期待著你。wdx2008:非常好!??!幽默,搞笑,易懂,真神人也,鬼神不可測(cè)!支持樓主?。】彰髁鬓D(zhuǎn):呵呵,樓主說(shuō)得蠻好。國(guó)外的文章好就好在有例子,“廢話”多,所以比較好理解。至于行文風(fēng)格嘛,這個(gè)倒是因人而異的。我個(gè)人就偏向于論文式的行文風(fēng)格,邏輯嚴(yán)密,層層遞進(jìn),闡述也很清晰。就有點(diǎn)像有序數(shù)組,二分法就能輕松查找到自己想要的東西,但國(guó)內(nèi)的那種論文式的文章,呵呵,我看是賣弄的成分居多,實(shí)作的成分偏少,所以才那么難讀的吧。Char:現(xiàn)在的大學(xué)就缺少這種既通俗易懂,又有內(nèi)容的東西。Apple:不錯(cuò),學(xué)習(xí)了。希望博主能再接再厲多寫點(diǎn),看了很多書(shū)都沒(méi)有看你的文章明白得快。SnowDoggie:呵呵,挺好的。其實(shí)要想找個(gè)絕對(duì)沒(méi)有漏洞的例子是很辛苦的,關(guān)鍵在于文章本身能說(shuō)明問(wèn)題,能體現(xiàn)作者的意圖就足夠了。昨天和朋友一起爬山的時(shí)候還討論了你的文章風(fēng)格,其實(shí)最有用的還是你這種寓教于樂(lè),步步深入的風(fēng)格,陽(yáng)春白雪的經(jīng)典雖然是經(jīng)典,大眾卻不見(jiàn)得喜歡。Jerry:不錯(cuò)的文章,簡(jiǎn)單明了,又不乏趣味,好的文章就得頂下。izhizhe2000:很好,整個(gè)系列寫完之后可以出書(shū)了,保證受大學(xué)生的廣泛歡迎!mekong:很是欣賞這樣幽默風(fēng)趣又不失睿智深刻的文字。Wuyisky:呵呵,樓主不僅程序?qū)懙煤茫疫€有文學(xué)天賦。佩服!Jack:真正的高手是用最生動(dòng)的語(yǔ)言,最簡(jiǎn)單的例子,這才是真正的“深入淺出”。贊?。?!老兄,加油,繼續(xù)喲。BoyLee:人才,愛(ài)死你了。做了一年外包,沒(méi)技術(shù)含量。正打算從頭學(xué)習(xí)這些東西,這樣的方式我最喜歡了。Leoxu:很不錯(cuò),對(duì)正在找工作的我有很大的幫助。以后會(huì)多來(lái)光顧。Ame:寫得承上啟下,始終有一主干線貫穿,作者的文字功底很強(qiáng)啊!Artech:我很喜歡你的寫作風(fēng)格!以一種調(diào)侃的方式講明一個(gè)深?yuàn)W的問(wèn)題。我一直在嘗試如何以一種讓每個(gè)人都懂得的語(yǔ)言來(lái)向大家分享我所理解的.NET。你給了我一個(gè)啟發(fā)。8:醍醐灌頂!感謝,領(lǐng)悟了不少東西!??!Yufengly:真是太容易理解了,而且看后印象深刻,繼續(xù)努力!期待下文……支持作者!Sopper:支持,例子舉得很形象,寫得很棒,以后會(huì)常來(lái)關(guān)注。d:會(huì)技術(shù)的高人有很多,但能把技術(shù)講得如此通俗易懂的高人并不多,你是一個(gè),謝謝~~~white.wu:非常喜歡您這種授人以“漁”的文章。Answer:強(qiáng)啊,本菜鳥(niǎo)受益很大,謝謝。Hanlei:強(qiáng),很受益啊,感謝樓主,寫出這么好的文章來(lái)。金色海洋(jyk):繼續(xù)呀,我們期待中……,寫得很好,一看就懂。DSharp:看博客園這么久了,終于看到一篇有中國(guó)特色的好文。

編輯推薦

《大話設(shè)計(jì)模式》是準(zhǔn)備攀登面向?qū)ο缶幊谈叻迮笥褌兊囊啡撕吞釘y者;《大話設(shè)計(jì)模式》是學(xué)習(xí)、體會(huì)和領(lǐng)悟了眾多大師智慧結(jié)晶后的圖書(shū)作品;《大話設(shè)計(jì)模式》是你深入理解和感受GoF的《設(shè)計(jì)模式》及其它大師作品的必備書(shū)籍;《大話設(shè)計(jì)模式》授之以“魚(yú)”,更授之以“漁”。感受設(shè)計(jì)演變過(guò)程中所蘊(yùn)含的大智慧,體會(huì)樂(lè)與怒的程序人生中值得回味的一幕幕。設(shè)計(jì)模式的趣味解讀,面向?qū)ο蟮纳钊肫饰觥T谠溨C與溫馨中做一次面向?qū)ο缶幊趟季S的體操。

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    大話設(shè)計(jì)模式 PDF格式下載


用戶評(píng)論 (總計(jì)172條)

 
 

  •   類是對(duì)對(duì)象(屬性)的抽象,接口是對(duì)行為的抽象。對(duì)于任何一個(gè)OO程序員而言,設(shè)計(jì)模式即使不是最重要的,也是第二重要的。15年前,GOF的《Design Patterns:Elements of Reusable Object-Oriented Software》橫空出世,開(kāi)創(chuàng)性的提出了23種設(shè)計(jì)模式,將OO帶入了一個(gè)嶄新的時(shí)代。自那之后,設(shè)計(jì)模式就成了OO世界的世界語(yǔ),無(wú)論地域,無(wú)論種族,每個(gè)OO程序員都能和他人暢快溝通,而無(wú)需擔(dān)心有任何歧義。然而,要領(lǐng)悟各種設(shè)計(jì)模式的精髓,卻非一朝一夕的事,需要在實(shí)踐中千般錘百般煉?;氐匠探艿倪@本《大話設(shè)計(jì)模式》,可以說(shuō)是GOF的白話文版,通過(guò)簡(jiǎn)單有趣的例子,將23種模式一一解讀,對(duì)初學(xué)者而言,是一本不容錯(cuò)過(guò)的好書(shū)。即使對(duì)有一定設(shè)計(jì)模式基礎(chǔ)的程序員而言,相信也一定有所裨益。以下摘錄一些書(shū)中精辟之言,以饗讀者。

    > 面向過(guò)程設(shè)計(jì)開(kāi)發(fā)相對(duì)容易,但不容易應(yīng)對(duì)變化;面向?qū)ο笤O(shè)計(jì)開(kāi)發(fā)困難,但卻能更好的應(yīng)對(duì)千變?nèi)f化的世界。
    > 封裝變化點(diǎn)是面向?qū)ο蟮囊环N很重要的思維方式。
    > 單一職責(zé)原則:就一個(gè)類而言,應(yīng)該僅有一個(gè)引起它變化的原因。
    > 開(kāi)放-封閉原則:對(duì)于擴(kuò)展是開(kāi)放的,對(duì)于更改是封閉的。
    > 類是對(duì)對(duì)象(屬性)的抽象,接口是對(duì)行為的抽象。
  •   這本書(shū)是對(duì)Gof4所著的《設(shè)計(jì)模式》的解讀,或者深入淺出的入門,設(shè)計(jì)模式是面向?qū)ο蟮氖ソ?jīng)之一,是讓面向?qū)ο蟮腶nalysis和designing還有programming的思維凝合在一起的一種思想,總共有23個(gè)設(shè)計(jì)模式,在這本《大話設(shè)計(jì)模式》中,作者還羅列了編程過(guò)程中的一些常理性的規(guī)則,如單一功能原則,依賴倒置原則等,說(shuō)真的,面向?qū)ο蟮牟锁B(niǎo)讀過(guò)這本書(shū)就會(huì)很快的成為高手,我是搞.net的,這本書(shū)適用于主流的java,c#,smalltalk等面向?qū)ο蟮恼Z(yǔ)言,也就是說(shuō),設(shè)計(jì)模式講的面向?qū)ο蟮倪^(guò)程是拋開(kāi)計(jì)算機(jī)底層,完全從高層分析設(shè)計(jì)的,在國(guó)內(nèi),理解設(shè)計(jì)模式精髓的人太稀少了,這本書(shū)對(duì)設(shè)計(jì)模式的解讀是透徹易懂。還有書(shū)中提到的兩本書(shū),headfirst和《重構(gòu)》也是程序員的必讀書(shū)。對(duì)于一個(gè)搞軟件的需要具備的不僅僅是語(yǔ)言,工具,還有專業(yè)認(rèn)證,更需要把編程的方法溶為思想,不管是否閱讀過(guò)設(shè)計(jì)模式,這本書(shū)都應(yīng)該看一看,很助于理解。再次為作者的智慧感到驚嘆!
  •   學(xué)了那么久的面向?qū)ο蟮恼Z(yǔ)言了,對(duì)于我們據(jù)說(shuō)的OO編程大家真的理解的嗎?看了本書(shū)后,才知道自己寫的程序有多么的糟糕~!根本就沒(méi)有什么面向?qū)ο罂裳?本書(shū)并沒(méi)有什么語(yǔ)法知識(shí),但它能帶給你的是OO思想上的一次洗禮,用其中的模式可以編寫出易擴(kuò)展和維護(hù)\復(fù)用性高,冗余低程序來(lái),雖然很基礎(chǔ),但就像我們唱歌,閉上眼睛,感覺(jué)唱得很好,但卻不知道歌曲中歌詞的含意,這就是看過(guò)和沒(méi)看過(guò)的區(qū)別.本書(shū)雖是從GOF過(guò)來(lái)的,但難得我們國(guó)家在這編程方面出來(lái)一本好書(shū),所以我同樣力薦本書(shū)作為你進(jìn)階的書(shū)籍中必看的一本!
  •   很早之前就買了一本GOF的《設(shè)計(jì)模式》,第一章看完,就沒(méi)有堅(jiān)持繼續(xù)看下去,前段時(shí)間,看到同事的桌上擺了這本《大話設(shè)計(jì)模式》,隨手拿起來(lái)翻了翻,這一看不得了,愛(ài)不釋手了都,晚上回家,打開(kāi)本本,第一件事情就是到當(dāng)當(dāng)買下它,周二下的訂單,周五就收到了,當(dāng)當(dāng)?shù)男蔬€是可以的。這本書(shū)寫的真的很不錯(cuò),不是隨便夸夸,而是其內(nèi)容安排和實(shí)例講解,加上對(duì)話式的行文,讓人讀起來(lái)像看小說(shuō)一樣輕松,不知不覺(jué)就在小菜和大鳥(niǎo)的對(duì)話中,掌握了設(shè)計(jì)模式的精髓,常常為作者能想出這樣的故事式講述方法,拍案叫好。雖然讀起來(lái)輕松愉快,但是內(nèi)容一點(diǎn)也沒(méi)落下,對(duì)設(shè)計(jì)模式的講解不可謂不精彩,不可謂不深入,不可謂不透徹??傊痪湓挘槐緡?guó)人的好書(shū)!
  •   故事很幽默,在幽默的故事中引出面向?qū)ο缶幊痰脑瓌t和思想,真不知道作者是怎么想到的。不僅適宜初學(xué)者對(duì)設(shè)計(jì)模式展開(kāi)第一次的親密接觸,也適用于老鳥(niǎo)們溫故而知新。
  •   可復(fù)用面向?qū)ο笤O(shè)計(jì)模式入門的首選,建議先看這本書(shū),然后再看GoF的23種設(shè)計(jì)模式。
  •   學(xué)一點(diǎn)設(shè)計(jì)模式一定是受益非淺的,尤其是新手必讀。新手推薦的閱讀順序是這樣的,先從大話設(shè)計(jì)模式的附錄一:面向?qū)ο蠡A(chǔ)看起。然后選擇一本結(jié)合編程語(yǔ)言的面向?qū)ο髸?shū)籍,java和C++都非常的多,flex就可以直接看黑羽的殿堂之路。再然后就可以看這本《大話設(shè)計(jì)模式》了。再然后就可以看那本經(jīng)典的《深入淺出設(shè)計(jì)模式》了。這樣下來(lái),新人就能成為老鳥(niǎo)了!
  •   以情景對(duì)話的形式,用多個(gè)小故事或編程示例來(lái)組織講解GoF總結(jié)的23個(gè)設(shè)計(jì)模式.
  •   在網(wǎng)上看了電子書(shū)一章后,才決定購(gòu)買,真是介紹編程模式中的佳品!非常難得的好書(shū)。以前看那么多介紹面向?qū)ο缶幊谭椒ǖ臅?shū)都幾乎白費(fèi)了,每次看都昏昏欲睡的,這書(shū)則不同,通過(guò)兩個(gè)程序員的簡(jiǎn)單對(duì)話,非常有生活氣息,然后每個(gè)模式都有代碼示范,很快用模式編程與不用模式編程,就對(duì)比出孰優(yōu)孰劣了。要掌握本書(shū),還得多多做練習(xí),或在項(xiàng)目中使用這些方法,這樣進(jìn)步最快。另外,要對(duì)當(dāng)當(dāng)提出批評(píng),我的書(shū)前幾頁(yè)竟然像被人狠抓過(guò)一樣的皺,買這么多次書(shū),這是頭一回的,真是莫名其妙,有幾頁(yè)還是撕裂了幾個(gè)口子,我只得用膠帶粘上。當(dāng)當(dāng)要注意員工的培訓(xùn)啊,在你這兒買書(shū),是給你們面子!不要再發(fā)生類似事件了。
  •   設(shè)計(jì)模式是每個(gè)面向?qū)ο缶幊痰某绦騿T都應(yīng)掌握的,這本書(shū)總的來(lái)說(shuō)語(yǔ)言簡(jiǎn)單幽默,學(xué)習(xí)時(shí)也不讓人覺(jué)得枯燥
  •   以小菜在大鳥(niǎo)的幫助下從面向過(guò)程的初級(jí)程序員到熟知設(shè)計(jì)模式的公司程序員明星的故事講述23個(gè)設(shè)計(jì)模式。讀完本書(shū)基本可以通過(guò)一個(gè)設(shè)計(jì)模式想起書(shū)中的故事,然后通過(guò)故事想起該模式的類圖,基礎(chǔ)代碼,對(duì)初學(xué)者來(lái)說(shuō)這是很重要的。
  •   書(shū)很不錯(cuò),循序漸進(jìn)的啟發(fā),有力引導(dǎo)人以面向?qū)ο笤O(shè)計(jì)思想方式轉(zhuǎn)變。面向過(guò)程到面向?qū)ο笞铍y的就是思想的轉(zhuǎn)變,本書(shū)中的講解從最開(kāi)始的面向過(guò)程的思維,通過(guò)增加,需求,講究實(shí)際軟件中的問(wèn)題,啟發(fā)讀者嘗試通過(guò)對(duì)程序進(jìn)行面向?qū)ο蟮闹貥?gòu)。
  •   這是面向?qū)ο缶幊坍?dāng)中的重要技巧:模式設(shè)計(jì)技術(shù)的超級(jí)入門書(shū),我說(shuō)超級(jí)的意思是超級(jí)的簡(jiǎn)單,通俗易懂,能夠吸引人學(xué)下去,當(dāng)然也有缺點(diǎn):有些時(shí)候,為了追求通俗易懂,有些模式寫的簡(jiǎn)單了一些,進(jìn)度有點(diǎn)快。模式設(shè)計(jì)很難懂,要明白一個(gè)模式,我常常要花費(fèi)半天(4小時(shí))的功夫,過(guò)去看過(guò)一些這方面的書(shū),都沒(méi)能讀完,這本書(shū)讀了一半,感覺(jué)還不錯(cuò)。
  •   說(shuō)實(shí)話,本書(shū)的意圖是向大家展示面向?qū)ο蟮乃枷胧呛芙咏顚?shí)際的,面向?qū)ο蟮恼Z(yǔ)言與以往的低級(jí)語(yǔ)言或者面向過(guò)程的語(yǔ)言不通,這種思想的基礎(chǔ)就是人類的自然思維,你怎么看待這個(gè)世界的資源配置、分工合作,就應(yīng)該怎么去理解面向?qū)ο筮@種思想,有人說(shuō)本書(shū)通俗易懂,那是因?yàn)樽髡叨眠@個(gè)道理,其實(shí)大家都可以做到講面向?qū)ο蟮乃枷肴谌肷钪腥ダ斫夂涂创恍┦虑?,時(shí)間長(zhǎng)了,在你面對(duì)一個(gè)設(shè)計(jì)問(wèn)題的時(shí)候,就會(huì)很自然地運(yùn)用面向?qū)ο蟮乃枷雭?lái)解決問(wèn)題,如果你懂得這個(gè)道理,并且堅(jiān)持鍛煉自己,總有一天,你也能寫出本書(shū)這樣的文字來(lái),而本書(shū)正是想你闡述這個(gè)問(wèn)題,它不光是在對(duì)大家講述設(shè)計(jì)模式這個(gè)很小的方面,而是教會(huì)大家如何真正理解面向?qū)ο筮@個(gè)博大精深的思想。
  •   這本書(shū)通過(guò)簡(jiǎn)單的“大話”方式,把設(shè)計(jì)模式這一軟件工程的核心課程娓娓道來(lái),風(fēng)格清新易懂,但讀者看這本書(shū)的前提應(yīng)該是有面向?qū)ο笳Z(yǔ)言的基礎(chǔ),最好是C#
  •   建議已經(jīng)學(xué)習(xí)了面向?qū)ο?,正?zhǔn)備提高自己的朋友閱讀此書(shū),用很輕松的方式講解了設(shè)計(jì)模式的演化和使用場(chǎng)合。
  •   對(duì)于了解面向?qū)ο?,又是設(shè)計(jì)模式初學(xué)者的人來(lái)說(shuō),本書(shū)是經(jīng)典教科書(shū)
  •   我是搞java的。真本書(shū)真的很適合設(shè)計(jì)模式的初學(xué)者,看完這本書(shū)不但是設(shè)計(jì)模式,面向?qū)ο蟮睦斫庖矔?huì)上一層樓。不錯(cuò)!
  •   剛看了附錄A,用“動(dòng)物運(yùn)動(dòng)會(huì)”的例子很形象的介紹了面向?qū)ο笳Z(yǔ)言的相關(guān)基礎(chǔ)知識(shí)。同學(xué)推薦的設(shè)計(jì)模式入門書(shū)籍~~
  •   今天剛拿到手,迫不及待的翻看了第一章,感受頗深~
    雖然我是學(xué)嵌入式的,大多數(shù)是面向底層開(kāi)發(fā)。但此書(shū)中的設(shè)計(jì)思想對(duì)任何從事程序開(kāi)發(fā)的人都很有益處,尤其是在代碼的可維護(hù)性、靈活性、可復(fù)用性上講解的很深刻。而且語(yǔ)言詼諧幽默,讓人眼前一亮。。非常難得的一本書(shū)。。
  •   對(duì)于學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的人來(lái)說(shuō),這是本國(guó)內(nèi)不可多得的設(shè)計(jì)模式入門好書(shū),文章風(fēng)趣幽默,通俗易懂,當(dāng)然這種書(shū)只看一遍是遠(yuǎn)遠(yuǎn)不夠的,要自己學(xué)著用代碼實(shí)現(xiàn),然后再與書(shū)上的代碼對(duì)照,這樣學(xué)習(xí)更有效果。當(dāng)然學(xué)完這本可以繼續(xù)學(xué)習(xí)國(guó)外的《設(shè)計(jì)模式》那本圣經(jīng)
  •   這本書(shū)不僅適用于初學(xué)者來(lái)提高編程思維,而且對(duì)于軟件工作者學(xué)習(xí)設(shè)計(jì)模式,提高開(kāi)發(fā)效率都很有幫助
  •   充滿理論而又不乏味,用豐富而幽默的故事來(lái)講解編程技術(shù),這樣的書(shū)確實(shí)不多見(jiàn),程杰老師能想到這么豐富的故事,足見(jiàn)其深厚的教學(xué)功底和對(duì)設(shè)計(jì)模式的透徹理解。我用了2個(gè)多星期慢慢地把這本書(shū)看完了,可以用四個(gè)字來(lái)形容,那就是“豁然開(kāi)朗”。
  •   在書(shū)店看到這本書(shū)之后就把我迷住了,回去后就到當(dāng)當(dāng)上買下了。這是第一本我能讀懂的設(shè)計(jì)模式書(shū)籍。以前一時(shí)沖動(dòng)買過(guò)一本GOF的《設(shè)計(jì)模式》,可惜本人水平太菜看不懂,只好束之高閣了。個(gè)人覺(jué)得比《大話設(shè)計(jì)模式》更符合中國(guó)人的口味。雖然現(xiàn)在早已不做這方面工作了,認(rèn)為這是自己買的最好的計(jì)算機(jī)書(shū)籍之一。一直想送給我的朋友。
  •   如果你不懂什么叫設(shè)計(jì)模式,那么就買這本書(shū)掃盲吧!前提是要有扎實(shí)的面向?qū)ο蟮幕A(chǔ)!
  •   感覺(jué)這本書(shū)寫的很好,不懂設(shè)計(jì)模式,根本無(wú)法真正認(rèn)識(shí)面向?qū)ο蟮母心?/li>
  •   看了前三章,作者的語(yǔ)言通俗易懂,講述的思路清晰,是一本學(xué)習(xí)設(shè)計(jì)模式的好書(shū),讀者要是結(jié)合書(shū)中的講解,做一些編程練習(xí),效果會(huì)更好。
  •   這書(shū)還是挺適合設(shè)計(jì)模式的初學(xué)者的,若要進(jìn)階的話,恐怕還得閱讀其他的書(shū)籍了,如《深入淺出設(shè)計(jì)模式》和GOF的那本名著了
  •   深入淺出,讓人理解深刻。配合GOF的設(shè)計(jì)模式穿插閱讀,更有體會(huì)。
  •   設(shè)計(jì)模式的入門是學(xué)習(xí)設(shè)計(jì)模式的門檻之一,通常那些經(jīng)典的設(shè)計(jì)模式著作很難讓人理解,并且讀完它們需要極大的毅力與勇氣。此書(shū)卻能用相對(duì)容易接受的方式讓人迅速閱讀完這本書(shū)并對(duì)設(shè)計(jì)模式有了初步概念。對(duì)進(jìn)一步深入學(xué)習(xí)設(shè)計(jì)模式的門檻降低了不少。雖然書(shū)中有些例子俺覺(jué)得相當(dāng)?shù)拿銖?qiáng)。
  •   無(wú)論作者如何寫, 設(shè)計(jì)模式都適合一定編程經(jīng)驗(yàn)的人看的 比wof gang的容易理解多了, 很不錯(cuò)的設(shè)計(jì)模式的書(shū) 很滿意
  •   通俗易懂,而且讓你徹底了解面向?qū)ο?,徹底掌握面向?qū)ο蟮脑O(shè)計(jì)。華為,中興,騰訊,金蝶,如果你要面試開(kāi)發(fā)或設(shè)計(jì)的崗位,又是高級(jí)語(yǔ)言,建議必看此書(shū),因?yàn)檫@四家公司我都面試了,O(∩_∩)O~
  •   雖然我的工作經(jīng)驗(yàn)有好幾年了,但是真正用到設(shè)計(jì)模式的項(xiàng)目基本為零。設(shè)計(jì)模式方面的技術(shù)書(shū)籍普遍枯燥乏味,很難堅(jiān)持看下去,所以把設(shè)計(jì)模式應(yīng)用到項(xiàng)目中也是空談。這本書(shū)用通俗幽默的場(chǎng)景和語(yǔ)言描述設(shè)計(jì)模式,能使閱讀者真正理解設(shè)計(jì)模式的精髓。希望看完這本書(shū)以后,能像作者描述的那樣,去讀《設(shè)計(jì)模式》的時(shí)候能醍醐灌頂,也希望我在閱讀完以后能真正寫出可維護(hù)、可復(fù)用、可擴(kuò)展、靈活性好的代碼。
  •   之前沒(méi)有學(xué)習(xí)過(guò)設(shè)計(jì)模式,讀了這本書(shū)后對(duì)23個(gè)常用模式有了概念上的了解,但要用好,很有很長(zhǎng)的路要走。各人覺(jué)得這本書(shū)比較適合初學(xué)者,因?yàn)槭谡n過(guò)程輕松詼諧,比起各種經(jīng)典來(lái)說(shuō)要的門檻低。
  •   這本書(shū)寫的是一個(gè)人學(xué)習(xí)面向?qū)ο蟮倪^(guò)程。故事與技術(shù)相結(jié)合。。很有創(chuàng)意。。??戳舜藭?shū)后感覺(jué)自己寫的代碼太爛了。。完全沒(méi)有復(fù)用性,可擴(kuò)展性,維護(hù)性和靈活性。。。書(shū)中的故事情節(jié)通俗易懂。。貼近生活。。小菜犯的錯(cuò)也是自己在學(xué)習(xí)中經(jīng)常犯的錯(cuò)誤。。。作者使讀者很清析認(rèn)識(shí)到自己經(jīng)常會(huì)犯的錯(cuò)誤。。并給以糾正。。。。這是一本好書(shū)。。很值得一看。。。所以我把這本書(shū)當(dāng)作生日禮物送給朋友。。。。。。
  •   用輕松詼諧的風(fēng)格講解設(shè)計(jì)模式這樣的題材,難能可貴,看得出來(lái)作者是一個(gè)愛(ài)學(xué)習(xí)的人,書(shū)中經(jīng)常出現(xiàn)其他老外經(jīng)典書(shū)籍的語(yǔ)錄,雖然有些地方比喻得比較牽強(qiáng),但為了支持國(guó)貨,我給打滿分~另外結(jié)尾一篇ootv大賽非常精彩,是全書(shū)最出色的部分,就這部分而言,不遜于任何外國(guó)“名著”
  •   用詼諧的語(yǔ)言介紹了Gof的23種設(shè)計(jì)模式。不過(guò)內(nèi)容略簡(jiǎn)單。
  •   這本書(shū)太好了,每個(gè)例子都通俗易懂,把23中設(shè)計(jì)模式以對(duì)話的形式給大家講解,非常容易理解。
  •   此書(shū)適合有一定編程知識(shí)和對(duì)設(shè)計(jì)模式感興趣的初學(xué)者
  •   花了幾天時(shí)間把這本書(shū)讀了一遍,感覺(jué)對(duì)我這種初學(xué)設(shè)計(jì)模式的人是非常有幫助的。加深了我對(duì)面向?qū)ο蟮睦斫猓視?shū)寫的非常有趣,沒(méi)有枯燥的感覺(jué)。還有就是對(duì)我自己來(lái)說(shuō)應(yīng)該對(duì)看幾遍。
  •   這是我第一次買和設(shè)計(jì)模式相關(guān)的書(shū),這本書(shū)比較淺顯易懂,適合有一定編程經(jīng)驗(yàn),想學(xué)習(xí)OO編程的程序員。
  •     書(shū)中,以幾個(gè)角色之間的對(duì)話和交流,用互動(dòng)的形式來(lái)對(duì)設(shè)計(jì)模式進(jìn)行講解,很形象,很透徹,也很清晰易懂,很適合初學(xué)者來(lái)看。
  •   把復(fù)雜的東西寫得淺顯易動(dòng)懂,讀了這本書(shū),對(duì)面向?qū)ο蠛驮O(shè)計(jì)模式有較深的了解,適合一直想研究設(shè)計(jì)模式,卻無(wú)從下手的朋友~~
  •   通過(guò)各種生活中的實(shí)例講解各個(gè)設(shè)計(jì)模式,通俗易懂,對(duì)設(shè)計(jì)模式有很好的理解,很適合初學(xué)者。
  •   我覺(jué)得這本書(shū)寫得相當(dāng)有趣味,一個(gè)個(gè)小故事和設(shè)計(jì)模式之前的共性讓作者的行文生動(dòng)出色,讀完后對(duì)設(shè)計(jì)模式有了很深的認(rèn)識(shí),接下來(lái),我會(huì)再讀一遍,然后動(dòng)手重構(gòu)自己的程序。
  •   書(shū)沒(méi)得說(shuō)啊,本人還是剛畢業(yè)的學(xué)生(非計(jì)算機(jī)專業(yè)),之前對(duì)設(shè)計(jì)模式理解不深入,平時(shí)學(xué)習(xí)常用的也就工廠和單例,但是隨著幾個(gè)月工作接觸工作的方方面面,越發(fā)地覺(jué)的設(shè)計(jì)模式的重要性,與其說(shuō)是設(shè)計(jì)模式還不如說(shuō)的思考模式,思維最重要,而大話這本書(shū),正是從工思維這個(gè)層面入手的,所以看著很有感覺(jué),多謝作者給我們菜鳥(niǎo)們提供了這樣一本好書(shū)
  •   給國(guó)內(nèi)技術(shù)書(shū)這么高的評(píng)價(jià)在我印象中是很少的,但這本絕對(duì)值得,專門為同事們買的,雖然實(shí)際項(xiàng)目中用到的設(shè)計(jì)模式很少,但這絕對(duì)是提高過(guò)程中必經(jīng)的一條路,以前看過(guò)PDF版,也看過(guò)同事的私人買的書(shū),這次買書(shū)一起批量買下,算是補(bǔ)上本好書(shū)在公司圖書(shū)里
  •   對(duì)想學(xué)習(xí)面向?qū)ο蟮哪J降娜藖?lái)說(shuō),值得一看!
  •   大話設(shè)計(jì)模式這本書(shū)確實(shí)很新穎,暫且不討論書(shū)的結(jié)構(gòu)問(wèn)題,單從形式上來(lái)說(shuō)可以算是一種創(chuàng)新,摒棄了傳統(tǒng)書(shū)籍的一味講解理論的風(fēng)格,該書(shū)更加生動(dòng)形象地對(duì)設(shè)計(jì)模式進(jìn)行講解,可見(jiàn)作者對(duì)設(shè)計(jì)模式理解之獨(dú)到。
  •   書(shū)很好,書(shū)的紙張質(zhì)量也很好。寫程序1年多來(lái),這是我第一次接觸設(shè)計(jì)作者寫得很棒,每個(gè)模式確實(shí)通俗易懂偏偏通俗了,又少了點(diǎn)深度?;蛟S我該感謝這本書(shū),因?yàn)槲覝?zhǔn)備買下《設(shè)計(jì)模式》,《重構(gòu)》,《重構(gòu)與模式》,《設(shè)計(jì)模式解析》等書(shū)籍再進(jìn)一步深入。
  •   設(shè)計(jì)模式的書(shū)看過(guò)一些了,從最早的“四人幫”的設(shè)計(jì)模式,到最新的Headfirst設(shè)計(jì)模式。這本書(shū)非常適于初學(xué)者和有一定coding經(jīng)驗(yàn)積累的人,實(shí)戰(zhàn)性很強(qiáng),而且行文比較輕松愉快,使人在愉快的閱讀和練習(xí)中掌握設(shè)計(jì)模式。極力推薦想學(xué)習(xí)”設(shè)計(jì)模式“的人選購(gòu),呵呵
  •   想學(xué)設(shè)計(jì)模式的有福氣咯而且里面有對(duì)面向?qū)ο筇匦缘娜の督忉?/li>
  •   淺顯易懂,對(duì)設(shè)計(jì)模式初學(xué)者很有好處,里面的示例程序采用c#語(yǔ)言。
  •   以前看過(guò)一些類似的設(shè)計(jì)模式的書(shū),也許是我能力不夠,看了半天不知道說(shuō)什么。這本書(shū)通俗易懂,對(duì)于想入門設(shè)計(jì)模式的人非常合適,建議看完這本書(shū)在去看一些比較深的設(shè)計(jì)模式的書(shū)籍。對(duì)我來(lái)說(shuō)這本書(shū)就是帶我走進(jìn)設(shè),計(jì)模式的神作了,由淺入深這本很合適,我很推薦。不好的地方就是例子講的比較簡(jiǎn)單了,但是對(duì)初學(xué)者來(lái)說(shuō),簡(jiǎn)單易懂才是最重要的。提醒下大家,電腦的書(shū)籍我不推薦在當(dāng)當(dāng)上買,比**貴很多,以前當(dāng)當(dāng)都是打75折,也許現(xiàn)在發(fā)展好了比較牛了,基本上電腦的書(shū)都打8折了,我也是最近才發(fā)現(xiàn)的,發(fā)現(xiàn)虧了很多。所以電腦類別的書(shū)我還是推薦去別的地方買~
  •   現(xiàn)在剛開(kāi)始看的是后面的附錄A面向?qū)ο蠡A(chǔ)。。因?yàn)槊嫦驅(qū)ο筮€不是很熟悉,所以是從附錄開(kāi)始看的。是在書(shū)城看到這本書(shū)的,這本書(shū)的封面標(biāo)題在那一堆的枯燥的顏色的編程書(shū)里顯得特別顯眼,乍看之下以為是誰(shuí)放錯(cuò)了一本笑話書(shū),好奇之余翻閱了一下,一下子就喜歡上了。很少有編程書(shū)讓人有一直看下去的欲望。果斷回家上網(wǎng)買書(shū)。
  •   本書(shū)很適合設(shè)計(jì)模式初學(xué)者,通過(guò)生活方式,以故意的形式吸引讀者目光,讓其有興趣更好的讀下去,改變了技術(shù)書(shū)籍一直以來(lái)沉悶的講知識(shí)點(diǎn)的模式。。。
  •   拿到嶄新的《大話設(shè)計(jì)模式》讓我很開(kāi)心,書(shū)送來(lái)時(shí)保護(hù)得很好,沒(méi)有磨損現(xiàn)象,第一印象很不錯(cuò)了。睡覺(jué)前躺在床上翻開(kāi)書(shū),一股墨香就鋪面而來(lái)。翻了一兩頁(yè),細(xì)細(xì)地品味了一下書(shū)中詼諧幽默的字句。字里行間流露出作者的睿智。都說(shuō)將很深?yuàn)W的問(wèn)題講得小孩都能聽(tīng)懂的才是大師。這本書(shū)就有著如此的特點(diǎn)。很喜歡。
  •   很通俗的一本書(shū)特別適合設(shè)計(jì)模式入門的人看?;镜睦雍芎?,每種設(shè)計(jì)模式總結(jié)的原則和優(yōu)點(diǎn)精辟準(zhǔn)確。我結(jié)合深入淺出設(shè)計(jì)模式在看。用這本書(shū)方便我的理解,用深入淺出設(shè)計(jì)模式做更高的提高。
  •   學(xué)校開(kāi)設(shè)的設(shè)計(jì)模式課程很枯燥,無(wú)奈值得自己尋覓教材...在同學(xué)書(shū)架上發(fā)現(xiàn)了這本書(shū),簡(jiǎn)單翻了兩頁(yè),便直接強(qiáng)行借走......所有的設(shè)計(jì)模式都是一個(gè)小故事,同時(shí)也穿插了幾個(gè)重要的設(shè)計(jì)原則,非常簡(jiǎn)單易懂,每個(gè)小單元的例子都很好上手,看書(shū)的同時(shí)最好敲一敲代碼。但是個(gè)人感覺(jué)作為學(xué)習(xí)非常適合,但作為工具書(shū)似乎欠妥...
  •   這樣的書(shū)比較難得,可以把面向?qū)ο罄锩娴纳願(yuàn)W模式,像講故事一樣生動(dòng)的表述出來(lái)。我邊看邊笑 這就叫學(xué)習(xí)的樂(lè)趣了吧
  •   這本書(shū)已經(jīng)看了第八章,從一個(gè)個(gè)生活場(chǎng)景中引入設(shè)計(jì)模式的概念,讓人難忘!
  •   找了許久有關(guān)設(shè)計(jì)模式方面的,曾經(jīng)有段時(shí)間看過(guò)head frist的電子書(shū)但是都沒(méi)有看這本書(shū)這樣幽默詼諧振奮人心。偶是剛學(xué)設(shè)計(jì)模式的菜鳥(niǎo),這本書(shū)幽默的表達(dá)方式,深刻的講解讓我們這些菜鳥(niǎo)十分受益。我很多同學(xué)都買了這本書(shū),而且他們都一致認(rèn)為這本書(shū)是看看過(guò)的最有意思的專業(yè)方面的書(shū)籍。太感謝作者了,您要是再出書(shū)我還得買~~~
  •   這本書(shū)通俗易懂的闡述了設(shè)計(jì)模式的應(yīng)用,不過(guò)讀者應(yīng)該在讀書(shū)的過(guò)程中結(jié)合到自己的實(shí)際項(xiàng)目中去設(shè)計(jì)改進(jìn),加深對(duì)設(shè)計(jì)模式的理解
  •   適合設(shè)計(jì)模式入門的初學(xué)者研讀,技術(shù)要點(diǎn)融匯在詼諧幽默的小說(shuō)當(dāng)中,是我讀過(guò)的最輕松的技術(shù)類書(shū)籍,支持作者。博客園的朋友。
  •   起初我從網(wǎng)上最先閱讀到其中一個(gè)章節(jié),就被深深的吸引了。后來(lái)買到書(shū)后認(rèn)真的閱讀,覺(jué)得真的是收益匪淺,比我之前買的設(shè)計(jì)模式類的書(shū)籍更容易閱讀,更容易理解。更難能可貴的是,它還會(huì)吸引你去讀。這里我向所有想學(xué)習(xí)設(shè)計(jì)模式的人推薦這本書(shū)。另外我也有一個(gè)建議,建議讀者把這本書(shū)翻譯成英文的,讓外國(guó)人也能享受到這么好的技術(shù)書(shū)籍。同時(shí)也能為中國(guó)程序員爭(zhēng)爭(zhēng)臉面(因?yàn)楹枚鄼?quán)威書(shū)籍都是國(guó)外出版的)。
  •   如果你在自學(xué)c#或是面向?qū)ο蟮木幊陶Z(yǔ)言,那這本書(shū)絕對(duì)是摸索中的燈塔,黑夜中的指路燈!看完書(shū)再寫代碼,你就會(huì)感覺(jué)到游擊隊(duì)和正規(guī)軍的戰(zhàn)斗力差距有多么大??!向作者致敬?。?!
  •   這本書(shū)深入淺出地講述了模式設(shè)計(jì)的各種方法和技巧, 以趣味對(duì)話的方式讓讀者在感受樂(lè)趣的同時(shí)深刻理解模式設(shè)計(jì)的各種優(yōu)秀的設(shè)計(jì)理念, 我很喜歡
  •   非常不錯(cuò)的設(shè)計(jì)模式教材,采用C#作為基礎(chǔ)語(yǔ)言,同時(shí)采用日常對(duì)話的方式進(jìn)行講解,雖然有些比喻不甚準(zhǔn)確,但是起到了很好的作用,讀書(shū)的時(shí)候充分調(diào)動(dòng)了讀者的積極性。不足就是書(shū)有點(diǎn)大,字有點(diǎn)大,如果做得小一些,有助于在更多的場(chǎng)合閱讀
  •   我沒(méi)有學(xué)過(guò)設(shè)計(jì)模式。不過(guò)看這本書(shū)發(fā)現(xiàn)編程的世界還是這么的有趣。越來(lái)越愛(ài)不釋手。

    因?yàn)閷戇@個(gè)評(píng)論。我打翻了水杯。半杯水灑在桌面上。唉。
  •   08年底讀到此書(shū),很久沒(méi)有閱讀的驚喜,這本書(shū)一下幫我理解了學(xué)習(xí)設(shè)計(jì)模式的實(shí)際意義,很多不理解的概念一下貫通了,難得的好書(shū).希望能讀到作者的其它作品.
  •   這本書(shū)寫的比較淺顯易懂,還有一本那個(gè)四個(gè)外國(guó)人寫的設(shè)計(jì)模式很好很強(qiáng)大,但是初學(xué)者好像不是很好懂,還是先看看這本書(shū)。有了全面的了解,在看那邊設(shè)計(jì)模式,基本上就搞明白了。
    還有一點(diǎn),不要迷信那二十來(lái)種設(shè)計(jì)模式,那只是教程。實(shí)際應(yīng)用種是活學(xué)活用的
  •   很好的設(shè)計(jì)模式入門書(shū),詮釋了編程不僅僅是技術(shù)還是藝術(shù)
  •   這個(gè)數(shù)對(duì)于學(xué)設(shè)計(jì)模式的人來(lái)說(shuō)比較適合入門,講的例子也比較貼近實(shí)際,通俗易懂,語(yǔ)言比較平實(shí),不足之處在于有些例子還是比較牽強(qiáng),希望作者再精雕細(xì)磨一下,使本書(shū)能更上一層樓,成為經(jīng)典中的經(jīng)典
  •   這本設(shè)計(jì)模式的書(shū)很適合初學(xué)者去研究與學(xué)習(xí)的過(guò)成。幽默詼諧,淺顯易懂。希望能夠很大家一起分享。
  •   有一定的理論和實(shí)踐基礎(chǔ)以后,這本書(shū)很有幫助:
    1、擴(kuò)展自己的知識(shí)面,加之書(shū)中實(shí)例,將自己從一個(gè)編碼人員向設(shè)計(jì)的方向牽引,并提供這個(gè)里面必要的、科學(xué)的、實(shí)用的相關(guān)輔助工具;
    2、逆向解析,從實(shí)例出發(fā),再來(lái)闡述原因、理由,最終貫穿設(shè)計(jì)人員的思想以及思維模式,對(duì)于剛接觸這個(gè)行業(yè)以及入門不久者是很不錯(cuò)的指引;
    3、系統(tǒng)性很強(qiáng),逐步深入,而不是向我們常見(jiàn)的課本,每個(gè)知識(shí)點(diǎn)是孤立的,起碼給我展示的是一個(gè)全貌。
    感覺(jué)接觸太晚,現(xiàn)在已經(jīng)轉(zhuǎn)行,但是讀到其中的內(nèi)容,特別是思維模式和工具,對(duì)我現(xiàn)在分析一些問(wèn)題,還是有一些啟示。
  •   一本基礎(chǔ)的入門的設(shè)計(jì)模式的書(shū)籍,情景對(duì)話的講解,通俗易懂
  •   此書(shū)對(duì)面向?qū)ο笤O(shè)計(jì)模式詮釋的很到位
  •   非常適合想要學(xué)習(xí)設(shè)計(jì)模式的初學(xué)者或有經(jīng)驗(yàn)的人
  •   設(shè)計(jì)模式,是解決一些問(wèn)題的固定模式,對(duì)于編程人員來(lái)說(shuō),讀讀受益匪淺
  •   買這本書(shū)的時(shí)候我也是帶著忐忑的心去買的,因?yàn)榕虏贿m合我,但是我拿到書(shū)之后就開(kāi)始瀏覽一下,結(jié)果它讓我愛(ài)不釋手。真的寫的太生動(dòng)、太好了!以講故事的形式及各種生動(dòng)的比喻講解了設(shè)計(jì)模式,很不錯(cuò),看來(lái)我的選擇是對(duì)的!我只想對(duì)作者說(shuō)你丫太厲害了
  •   本書(shū)是基于C#編寫的,閱讀時(shí)并不需要讀者有較高的程度設(shè)計(jì)與C#語(yǔ)言基礎(chǔ),是非常適合初學(xué)者的一本書(shū),能夠使讀者獲得C#與設(shè)計(jì)模式的基礎(chǔ)知識(shí),在輕松幽默與實(shí)踐中學(xué)到非常實(shí)用的知識(shí)!
  •   之前在書(shū)店中偶然看到這本書(shū)便隨手拿來(lái)閱讀,不料一讀起來(lái)就愛(ài)不釋手,不舍得放下,后來(lái)索性就在網(wǎng)上買一本。真的很不錯(cuò),讀起來(lái)輕松詼諧幽默,生動(dòng),很容易理解,特別適合想了解設(shè)計(jì)模式的限售
  •   本人生性較懶,買書(shū)從不寫評(píng)論,今天破例。這真是一本好書(shū),生動(dòng)有趣,通俗易懂。特別合適有了一定基礎(chǔ)想提高面向?qū)ο缶幊痰某绦騿T。
  •   看了N本講設(shè)計(jì)模式的書(shū),看了之后都是似懂非懂,而這一本讓我徹底搞懂了設(shè)計(jì)模式,絕對(duì)是一本好書(shū)。
    早知道這本書(shū)的話就不用繞這么大一個(gè)圈子去學(xué)習(xí)設(shè)計(jì)模式了。
    此書(shū)用很淺顯的生活例子來(lái)講解設(shè)計(jì)模式,語(yǔ)言生動(dòng)幽默,看后印象深刻。
    值得推薦!
  •   很好懂,很生動(dòng)。對(duì)于面向?qū)ο蟮木幊趟枷胗泻芎玫睦斫狻?/li>
  •   設(shè)計(jì)模式都是看了當(dāng)時(shí)會(huì),過(guò)后就基本上忘掉了。這本書(shū)用生動(dòng)的小例子給我們講解了設(shè)計(jì)模式,很好很好!!
  •   對(duì)于真正需要在軟件設(shè)計(jì)上入門的所有同學(xué),都建議去讀一讀這本書(shū)幽默詼諧的筆觸,一個(gè)個(gè)生動(dòng)的故事,引領(lǐng)我們進(jìn)入設(shè)計(jì)模式的大門你真的需要這么一本書(shū)
  •   這本書(shū)對(duì)初學(xué)者來(lái)說(shuō)真的是好書(shū),很容易懂,很容易上手,說(shuō)明作者對(duì)設(shè)計(jì)模式的思考很多
  •   這本書(shū)我已看一半,總體來(lái)說(shuō)很不錯(cuò),很適合像我這種剛接觸設(shè)計(jì)模式的初級(jí)玩家,不足之處是沒(méi)有對(duì)設(shè)計(jì)模式的應(yīng)用有更詳細(xì)的講解,看完書(shū)只能停留在看懂、理解,在運(yùn)用方面還是不能拿捏,不過(guò)此書(shū)我還是很喜歡的,引領(lǐng)我走進(jìn)了設(shè)計(jì)模式的殿堂。
  •   通過(guò)對(duì)話的方式來(lái)解析很多術(shù)語(yǔ),讓初學(xué)者感到無(wú)鴨梨。也舉一些公司上班模式時(shí)程序員所要做的事件更能讓人知道以后編程員是做什么類型的工作性質(zhì)的
  •   從《小菜成長(zhǎng)記》到《大話設(shè)計(jì)模式》一直關(guān)注學(xué)習(xí)著, 以非常淺顯的語(yǔ)言講明白了設(shè)計(jì)模式。不管是系統(tǒng)學(xué)習(xí)或是想隨便翻翻,都是非常值得的。
  •   文章里面描述了很多設(shè)計(jì)模式,雖然我不是學(xué)JAVA的,但是通過(guò)本書(shū)幽默生動(dòng)的實(shí)例講解,我也會(huì)很容易明白和記住各種不同的設(shè)計(jì)思想和設(shè)計(jì)模式。的確是一本與眾不同的書(shū),相比那些大家、專家寫的書(shū)更讓人通俗易懂。
  •   大話設(shè)計(jì)模式,是一本相對(duì)趣味的一本書(shū)籍。
    個(gè)人覺(jué)得要有一定的基礎(chǔ)才購(gòu)買本書(shū)。
  •   用很通俗的語(yǔ)言講解了深?yuàn)W的設(shè)計(jì)模式,非常容易理解,尤其適合剛接觸設(shè)計(jì)模式的人
  •   沒(méi)得說(shuō)了,真絕了!用簡(jiǎn)單的故事或示例把抽象的設(shè)計(jì)模式理論表述的通俗易懂。我想作者一定有著豐富的開(kāi)發(fā)和運(yùn)用經(jīng)驗(yàn),才能把設(shè)計(jì)模式表達(dá)的這么清晰透徹。
  •   先要說(shuō)一下文章的寫作模式,以小說(shuō)似的調(diào)侃帶出一個(gè)個(gè)案例和設(shè)計(jì)模式。很生動(dòng),顯得不那么枯燥。在同類別書(shū)中,的確是獨(dú)具特色,看得出作者是用心在寫書(shū),不像有的書(shū)抄來(lái)抄去的。
    內(nèi)容也寫的很通俗易懂,所以說(shuō)是科普式的讀物。
    總而言之,一本難得的好書(shū),學(xué)習(xí)計(jì)算機(jī)開(kāi)發(fā)的人必讀。
  •   這本書(shū)通過(guò)實(shí)際生活中的例子,闡述了設(shè)計(jì)模式的應(yīng)用場(chǎng)景,是一本不錯(cuò)的書(shū)籍,值得一看
  •   本書(shū)以白話故事方式講解的各種設(shè)計(jì)模式,已經(jīng)買過(guò)了,這次幫朋友買的。
  •   趣味中學(xué)習(xí)到設(shè)計(jì)模式的美妙,比讀經(jīng)典模式書(shū)籍更有收獲!
  •   以對(duì)話形式,來(lái)談?wù)撛O(shè)計(jì)模式,指出程序開(kāi)發(fā)時(shí)的不足。
 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7