標籤:style os 檔案 資料 io 2014 代碼 演算法
大
大話設計模式這本書給我最大的感覺就是這本書不是為了說明設計模式而寫的,它是為了讓你能夠更好地看懂,更好地理解而存在。到現在讀了也有一半了,稍微總結一下。
0.uml類圖。
軟體工程的基礎就是uml類圖。依賴:元素A的變化會影響元素B,但反之不成立,那麼B和A的關係是依賴關係,B依賴A;用帶箭頭的虛線表示,箭頭指向被依賴元素。泛化:通常所說的繼承(特殊個體 is kind of 一般個體)關係,不必多解釋了。uml中用帶空心箭頭的實線線表示,箭頭指向一般個體。實現:這個關係最常用於介面。uml中用空心箭頭和虛線表示Realize關係,箭頭指向定義約定的元素。關聯:元素間的結構化關係,是一種弱關係,被關聯的元素間通常可以被獨立的考慮。uml中用實線表示,箭頭指向被依賴元素。彙總:關聯關係的一種特例,表示部分和整體(整體 has a 部分)的關係。uml中用帶空心菱形頭的實線表示Aggregation關係,菱形頭指向整體。組合:組合是彙總關係的變種,表示元素間更強的組合關係。如果是組合關係,如果整體被破壞則個體一定會被破壞,而彙總的個體則可能是被多個整體所共用的,不一定會隨著某個整體的破壞而被破壞。uml中用帶實心菱形頭的實線表示Composition關係,菱形頭指向整體。
1.簡單原廠模式:通過factory進行執行個體化,一般工廠內用switch進行分支。
2.策略模式:例子:具體演算法繼承抽象演算法。
3.單一職責原則(略)、開放封閉原則(略):顧名思義。依賴倒轉原則:高層模組不依賴於底層模組,兩個都依賴於抽象。抽象不依賴於細節,細節依賴於抽象。
4.裝飾模式:動態給一個對象添加額外的功能,最大的特徵:鏈式調用(穿衣服)
5.代理模式:為其他對象提供一個代理以控制對對象的訪問。
6.Factory 方法:把簡單工廠的switch case搬運到了用戶端代碼來實現。
7.原型模式:複印簡曆的一種clone模式,注意其中的深複製與淺複製。
8.模板方法模式:執行個體:考試做選擇題,將一些抽象操作放到子類實現(answer1()),以實現對代碼的最大複用。
9.迪米特法則:如果兩個類不必彼此通訊,那麼這兩個類就不應該發生直接作用。(分配修電腦的人)
10.面板模式:設計一個外觀類,知道哪些子系統類負責處理請求,將客戶的請求代理給適當的子系統對象。
11.建造者模式:設計一個抽象介面,裡面有建造需要的所有抽象方法,必須實現所有的,好處就是使建造代碼和表示代碼分離。
12.觀察者模式:url釣魚系統中用過,其特點在於notify,出現情況notify所有的登入類進行處理。
13.抽象原廠模式:可能存在生產多種產品的工廠(sql,access),而且產出來的是實現了不同抽象產品父類的產品。書中還提到了擴充內容:用簡單工廠替代、用反射+抽象工廠(把不同實現方式化成字串,根據需要更換)、用設定檔讀入字串(完全擺脫寫入程式碼)
14.狀態模式:為了消除很長的方法(switch語句等),通過不同的狀態類進行描述。
15.適配器模式:進行翻譯,相當於驅動程式,有點類似於代理模式。
16.備忘錄模式:發起人、備忘錄、玩家(管理者)的模組化。
17.組合模式:類似於資料結構中多叉樹的組織圖。
?
?
?
?