前言:看這本書的時候我仍是個小白,第二次看的時候已經要面臨找新工做了,第三次看的時候已經換了心境。用了三次 跨越三年的時間纔看完這本書,真該早點看完。面試
1:簡單工廠:計算器 加法、減法、乘法、除法算法
2:策略模式:商場促銷方案數據庫
3:單一職責:手機與相機安全
4:開發-封閉原則:考研與找工做數據結構
5:依賴倒轉:PC機中各模塊的獨立與接口;里氏代換原則spa
6:裝飾模式:如何穿衣服翻譯
7:代理模式:間接送禮物設計
8:工廠方法:學雷鋒;比較簡單工廠與工廠方法的區別;聯想反射代理
9:原型模式:多版本簡歷;深複製、淺複製;日誌
10:模板方法:面試選擇題
11:迪米特法則:接口鬆耦合
12:外觀模式:股票與基金
13:建造者模式:肯德基不一樣產品流程化
14:觀察者模式:老闆回來的通知
15:抽象工廠:反射-切換數據庫
16:狀態模式:加班 state work 每一個時間段一個狀態及從新聲明下一個狀態
17:適配器模式:接口與接口之間的翻譯
18:備忘錄模式:遊戲存進度,封裝、限制訪問
19:組合模式:總公司、分公司、部門,安全方式、透明方式
20:迭代器模式:提供一種方法順序訪問一個聚合對象中各個元素,而又不暴露該對象的內部表示
21:單例模式:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。
22:橋接模式:合成\聚合複用原則
23:命令模式:烤羊肉串命令
24:責任鏈條模式:多級申請不一樣審批權限
25:中介模式:安理會給各個國家傳話
26:享元模式:共享顆粒化對象
27:解釋器模式:工廠+swich 曲譜翻譯
28:訪問者模式:目的是將邏輯處理從數據結構分離;將對象、方法、基類分開
抽象工廠:提供一個建立一系列或相關依賴對象的接口,而無需指定他們具體的類
建造者:將一個複雜對象的構建與它的表示分離,使得一樣的構建過程能夠建立不一樣的表示。
工廠方法:定義一個用於建立對象的接口,讓子類決定實例化哪個類,工廠模式使一個類的實例化延遲到其子類。
原型:用原型實例指定建立對象的種類,而且經過拷貝這些原型創新的對象。
單例:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。
適配器模式:將一個類的接口轉變成客戶但願的另外一個接口,使得本來因爲接口不兼容而不能一塊兒工做的類能夠一塊兒工做。
橋接模式:把抽象與實現部分分離,均可以獨立變化-手機軟件。
組合模式:將對象組合成樹形結構以表示「部分-總體」的樹形層次結構,組合模式使得用戶對於單一對象和組合對象的使用具備統一性。
裝飾模式:動態的給一個對象添加一些額外的責任,就添加功能來講裝飾模式相比生成子類更加靈活。
外觀模式:爲子系統中的一組接口提供一個一致的界面,定義了一個高層接口,這個接口使得這一子系統更加容易使用。
享元模式:運用共享技術支持大量的細粒度對象。
代理模式:爲對象提供一種代理來控制對這個對象的訪問。
觀察者模式:定義對象間的一種一對多的依賴關係,當一個對象發生變化時,全部依賴他的對象獲得通知並自動更新。
模版方法:定義一個算法的骨架,而將一些步驟延遲到子類中,模版方法使得子類能夠不改變一個算法結構就能夠從新定義該算法的某一步驟。
命令方法:將一個請求封裝成對象,從而能夠用不一樣的請求對客戶進行參數化;能夠對請求排隊或記錄請求日誌,以及支持可撤銷的操做。
狀態方法:容許一個對象在其內部狀態改變是改變其行爲,讓對象看起來彷佛修改了它的類。
職責鏈方法:使多個對象都有機會處理請求,從而避免請求的發送者和接受者的耦合關係,將這些對象鏈接成一條鏈,並沿着這條鏈傳遞請求,直到有一個對象處理它未知。
解釋器:給定一個語言,定義它的文法的一種表示,並定義一個解釋器,這個解釋器用來表示語言中的句子。
中介模式:用一箇中介封裝一些系列對象交互。中介使個對象不須要顯式地項目引用,從而使其耦合離散,並且能夠獨立的改變他們之間的交互。
訪問者模式:表示一個做用於某對象結構中的各元素的操做,使得能夠在不改變各個元素的類的前提下定義做用於這些元素的操做。
策略模式:定義一系列的算法,並封裝它們,使其能夠相互替換,做用:使算法獨立與客戶而改變。
備忘錄模式:在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在對象以外保存這個狀態,使以後能夠將該對象恢復到以前狀態。
迭代器模式:提供一種方法順序訪問一個聚合對象內部的全部元素,而又不暴露對象內部表示。