大話設計模式
內容描述
通篇都是以情景對話的形式,用多個小故事或編程示例來組織講解GoF(設計模式的經典名著——Design Patterns: Elements of Reusable Object-Oriented Software,中譯本名為《設計模式——可復用面向對象軟件的基礎》的四位作者Erich Gamma、Richard Helm、Ralph Johnson,以及John Vlissides,這四人常被稱為Gang of Four,即四人組,簡稱GoF)總結的23個設計模式。本書共分為29章。其中,第1、3、4、5章著重講解了面向對象的意義、好處以及幾個重要的設計原則;第2章,以及第6到第28章詳細講解了23個設計模式;第29章是對設計模式的全面總結。附錄部分是通過一個例子的演變為初學者介紹了面向對象的基本概念。本書的特色是通過小菜與大鳥的趣味問答,在講解程序的不斷重構和演變過程中,把設計模式的學習門檻降低,讓初學者可以更加容易地理解——為什麽這樣設計才是好的?是怎樣想到這樣設計的?以達到不但授之以“魚”,還授之以“漁”的目的。引導讀者體會設計演變過程中蘊藏的大智慧。 本書適合編程初學者或希望在面向對象編程上有所提高的開發人員閱讀。
目錄大綱
第1章代碼無錯就是優?--簡單工廠模式
1.1面試受挫
1.2初學者代碼毛病
1.3代碼規範
1.4面向對象編程
1.5活字印刷,面向對象
1.6面向對象的好處
1.7複製vs.復用
1.8業務的封裝
1.9緊耦合vs.松耦合
1.10簡單工廠模式
1.11 UML類圖
第2章商場促銷--策略模式
2.1商場收銀軟件
2.2增加打折
2.3簡單工廠實現
2.4策略模式
2.5策略模式實現
2.6策略與簡單工廠結合
2.7策略模式解析
第3章拍攝UFO--單一職責原則
3.1新手機
3.2拍攝
3.3沒用的東西
3.4單一職責原則
3.5方塊遊戲的設計
3.6手機職責過多嗎?
第4章考研求職兩不誤--開放-封閉原則
4.1考研失敗
4.2開放-封閉原則
4.3何時應對變化
4.4兩手準備,並全力以赴
第5章會修電腦不會修收音機?--依賴倒轉原則
5.1 MM請求修電腦
5.2電話遙控修電腦
5.3依賴倒轉原則
5.4里氏代換原則
5.5修收音機
第6章穿什麼有這麼重要?--裝飾模式
6.1穿什麼有這麼重要?
6.2小菜扮靚第一版
6.3小菜扮靚第二版
6.4裝飾模式
6.5小菜扮靚第三版
6.6裝飾模式總結
第7章為別人做嫁衣--代理模式
7.1為別人做嫁衣!
7.2沒有代理的代碼
7.3只有代理的代碼
7.4符合實際的代碼
7.5代理模式
7.6代理模式應用
7.7秀才讓小六代其求婚
第8章雷鋒依然在人間--工廠方法模式
8.1再現活雷鋒
8.2簡單工廠模式實現
8.3工廠方法模式實現
8.4簡單工廠vs.工廠方法
8.5雷鋒工廠
第9章簡歷複印--原型模式
9.1誇張的簡歷
9.2簡歷代碼初步實現
9.3原型模式
9.4簡歷的原型實現
9.5淺複製與深複製
9.6簡歷的深複製實現
9.7複製簡歷vs.手寫求職信
第10章考題抄錯會做也白搭--模板方法模式
10.1選擇題不會做,蒙唄!
10.2重複=易錯+難改
10.3提煉代碼
10.4模板方法模式
10.5模板方法模式特點
10.6主觀題,看你怎麼蒙
第11章無熟人難辦事?--迪米特法則
11.1第一天上班
11.2無熟人難辦事
11.3迪米特法則
第12章牛市股票還會虧錢?--外觀模式
12.1牛市股票還會虧錢?
12.2股民炒股代碼
12.3投資基金代碼
12.4外觀模式
12.5何時使用外觀模式
第13章好菜每回味不同--建造者模式
13.1炒麵沒放鹽
13.2建造小人一
13.3建造小人二
13.4建造者模式
13.5建造者模式解析
13.6建造者模式基本代碼
第14章老闆回來,我不知道--觀察者模式
14.1老闆回來?我不知道!
14.2雙向耦合的代碼
14.3解耦實踐一
14.4解耦實踐二
14.5觀察者模式
14.6觀察者模式特點
14.7觀察者模式的不足
14.8事件委託實現
14.9事件委託說明
14.10石守吉失手機後的委託
第15章就不能不換DB嗎?--抽象工廠模式
15.1就不能不換DB嗎?
15.2最基本的數據訪問程序
15.3用了工廠方法模式的數據訪問程序
15.4用了抽象工廠模式的數據訪問程序
15.5抽象工廠模式
15.6抽象工廠模式的優點與缺點
15.7用簡單工廠來改進抽象工廠
15.8用反射+抽象工廠的數據訪問程序
15.9用反射+配置文件實現數據訪問程序
15.10無癡迷,不成功
第16章無盡加班何時休--狀態模式
16.1加班,又是加班!
16.2工作狀態-函數版
16.3工作狀態-分類版
16.4方法過長是壞味道
16.5狀態模式
16.6狀態模式好處與用處
16.7工作狀態-狀態模式版
第17章在NBA我需要翻譯--適配器模式
17.1在NBA我需要翻譯!
17.2適配器模式
17.3何時使用適配器模式
17.4籃球翻譯適配器
17.5適配器模式的.NET應用
17.6扁鵲的醫術
第18章如果再回到從前--備忘錄模式
18.1如果再給我一次機會……
18.2遊戲存進度
18.3備忘錄模式
18.4備忘錄模式基本代碼
18.5遊戲進度備忘
第19章分公司=一部門--組合模式
19.1分公司不就是一部門嗎?
19.2組合模式
19.3透明方式與安全方式
19.4何時使用組合模式
19.5公司管理系統
19.6組合模式好處
第20章想走?可以!先買票--迭代器模式
20.1乘車買票,不管你是誰!
20.2迭代器模式
20.3迭代器實現
20.4 .NET的迭代器實現
20.5迭代高手
第21章有些類也需計劃生育--單例模式
21.1類也需要計劃生育
21.2判斷對像是否是null
21.3生還是不生是自己的責任
21.4單例模式
21.5多線程時的單例
21.6雙重鎖定
21.7靜態初始化
第22章手機軟件何時統一--橋接模式
22.1憑什麼你的遊戲我不能玩
22.2緊耦合的程序演化
22.3合成/聚合復用原則
22.4松耦合的程序
22.5橋接模式
22.6橋接模式基本代碼
22.7我要開發"好"遊戲
第23章烤羊肉串引來的思考--命令模式
23.1吃烤羊肉串!
23.2燒烤攤vs.燒烤店
23.3緊耦合設計
23.4松耦合設計
23.5松耦合後
23.6命令模式
23.7命令模式作用
第24章加薪非要老總批?--職責鏈模式
24.1老闆,我要加薪!
24.2加薪代碼初步
24.3職責鏈模式
24.4職責鏈的好處
24.5加薪代碼重構
24.6加薪成功
第25章世界需要和平--中介者模式
25.1世界需要和平!
25.2中介者模式
25.3安理會做中介
25.4中介者模式優缺點
第26章項目多也別傻做--享元模式
26.1項目多也別傻做!
26.2享元模式
26.3網站共享代碼
26.4內部狀態與外部狀態
26.5享元模式應用
第27章其實你不懂老闆的心--解釋器模式
27.1其實你不懂老闆的心
27.2解釋器模式
27.3解釋器模式好處
27.4音樂解釋器
27.5音樂解釋器實現
27.6料事如神
第28章男人和女人--訪問者模式
28.1男人和女人!
28.2最簡單的編程實現
28.3簡單的面向對象實現
28.4用了模式的實現
28.5訪問者模式
28.6訪問者模式基本代碼
28.7比上不足,比下有餘
第29章OOTV杯超級模式大賽--模式總結
29.1演講任務
29.2報名參賽
29.3超模大賽開幕式
29.4創建型模式比賽
29.5結構型模式比賽
29.6行為型模式一組比賽
29.7行為型模式二組比賽
29.8決賽
29.9夢醒時分
29.10沒有結束的結尾
附錄A培訓實習生--面向對象基礎
A.1培訓實習生
A.2類與實例
A.3構造方法
A.4方法重載
A.5屬性與修飾符
A.6封裝
A.7繼承
A.8多態
A.9重構
A.10抽像類
A.11接口
A.12集合
A.13泛型
A.14委託與事件
A.15客套
附錄B參考文獻
作者介紹
程傑,高級軟件工程師&高級培訓講師。從事軟件開發一線工作近八年時間。
曾在申銀萬國證券公司、上海楊浦區政府、朝華集團下屬網游公司、香港晨興集團等多行業項目開發中擔任主程及項目負責人,有豐富的大中型軟件開發經驗,以及多年的軟件設計與項目管理經驗。
曾任加拿大慧橋培訓中心講師,主持.NET高級軟件工程師的培訓工作;早年從事高中數學教學工作,曾在江蘇常州重點高中任教時獲得過市教學一等獎,這些教學和培訓經歷讓作者對如何以易懂的語言講解艱深的技術知識有了深刻的理解。
他也是“博客園”網站的博客http://cj723.cnblogs.com/的連載文章《小菜編程成長記》的作者。
本書作者集多年實際項目開發經驗和豐富教學培訓經驗於一身,準確把握住編程初學者的視角,以淺顯幽默的語言向讀者詮釋了面向對象設計模式的精髓。