《設計模式解析》學習筆記

 正在看設計模式解析,希望這本書能對我有幫助

 

花了2周看完了,以下是學習筆記:

 

1 面向對象泛型

1、  面向對象考慮問題的三個視角:概念、規約、實現。

概念:抽象類(接口),泛指某種類型。

規約:類的成員函數,及其參數表。

實現:成員函數的實現。

2、  封裝一般意味着各種隱藏。例如,抽象類隱藏子類的具體類型。

3、  功能分解一般是結構化程序員使用的方法,那我們設計階段(概要設計、詳細設計)的功能分解是否不正確?

4、  對象自己負責自己。個人理解:對象不需要進行某種特殊的初始化,就能正確使用。

5、  P17的主程序,負責協調各個功能對象。

 

4 標準的面向對象解決方案

1、  這章的解決方法和我們的方法驚人的相似:雖然可以在不改變已有系統的情況下添加新功能,但是造成了類爆炸。

 

8 開拓視野

1、  對象是具有責任的一個實體。

但是我不清楚如何“劃分”對象,比如劃分成校驗類、下發類、解析類、數據庫類,這些似乎也能被看成一個個有責任的實體。但是“直覺”告訴我,這樣似乎不對,也許壓根就不應該做劃分。

2、  封裝應該被視爲“任何形式的隱藏”,包括:

1)實現細節

2)派生類

3)設計細節

4)實例化規則

3、  將封裝看成是通過抽象類或者接口隱藏類。

4、  共通的概念將用抽象類表示。可比性分析所發現的變化將通過具體類(也就是從抽象類派生而來的具有特定實現的類)實現。

5、  在創建對象時使用共性和可變性分析更好。

 

9 Strategy模式

1、  假設變化將會出現,並嘗試預測其出現的位置。

2、  考慮設計中什麼應該是可變的。它不是考慮什麼會迫使設計發生改變,而是考慮什麼能夠在不引起重新設計的前提下改變。

 

10 Bridge模式

1、  用對象的職責而不是其結構來思考問題。

2、  “爲每種變化使用不同的特化”(繼承)到“將變化轉移到使用或擁有這種變化的對象中”(組合)的轉變。

 

13 用模式結局CAD/CAM問題

1、  用模式思考的過程。
1
)找出模式。
2
)分析和應用模式。
   2a
、按背景的創造順序將模式排序。
  
原則:先考慮系統中需要什麼,然後再去關注如何創建它們,即工廠模式是最後要考慮的
   2b
、選擇模式並擴展設計。
   2c
、找到其他模式。
   2d
、重複。
3
)添加細節。

 

15 共性與可變性分析

1、  開發人員需要一種方式,首先弄清有些什麼東西,然後再嘗試找到它們之間的關係。

 

16 分析矩陣

1、  用行發現規則。
用列發現特定情況。

2、  關於客戶:
他們會談的非常具體;它們經常用“總是”表達“通常”,用“從不”表達“很少”。

 

17 Decorator模式

1、  用工廠來生產有特定裝飾的對象。

 

18 Observer模式

1、  如果一個要成爲觀察者的類已經存在,則可以使用Adapter模式進行轉換:

 

21 Singleton模式和Double-Checked Locking模式

1、  在多線程應用程序中,Singleton對象通常必須是線程安全的,有狀態Singleton應該謹慎使用(看看那個SFACTORY的實現)。

 

24 工廠模式的總結

1、  創建和使用對象的三個主要任務:
1
)根據所履行的責任找出對象。
2
)決定如何使用這些對象。
3
)決定如何管理這些對象。

2、  對於系統中的任意兩個實體AB,應該將它們之間關係限制爲A使用B,或者A創建/管理B

 

25 設計模式回顧:總結與新起點

1、  這個模式隱藏了什麼實現?這樣我們就可以修改它。

2、  它如何將問題域分解爲多個責任。(解析、下發、DB?)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章