大話設計模式筆記(六 七 八 九 十)

2021-09-25 21:29:35 字數 1669 閱讀 9504

定義:動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生產子類更為靈活

1、當系統需要新功能的時候,是向舊的類中新增新的**。這些新加的**通常裝飾了原有類的核心職責或主要行為。它們在主類中加入了新的字段、新的方法和新的邏輯,從而增加了主類的複雜度,而這些新加入的東西僅僅為了滿足一些只在某種特定情況下才會執行的特殊行為的需要,二裝飾模式提供了乙個非常好的解決方案,把每個要裝飾的功能放在單獨的類中,並讓這個類包裝它說是要裝飾的物件。

定義:為其他物件提供一種**以控制對這個物件的訪問

2、虛擬**,是根據需要建立開銷很大的物件,通過它來存放例項化需要很長事件的真實物件

3、安全**,用來控制真實物件訪問時的許可權

4、智慧型指引,是指當呼叫真實的物件時,**處理另外一些事

定義:定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。

對比:簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。簡單工廠模式的缺點就是增加邏輯判斷是要修改簡單工廠,違背了ocp原則。

1、工廠方法模式實現時,客戶端需要決定例項化哪乙個工廠來實現運算類,選擇判斷的問題還是存在的,也就是說,工廠方法把簡單工廠的內部邏輯判斷移到客戶端**來進行。你向右加功能,本來是改工廠類的,而現在是修改客戶端。

2、工廠模式克服了簡單工廠違背開閉原則的缺點,又保持了封裝物件建立過程的優點,缺點是每增加乙個產品要加乙個產品工廠的類,增加了額外的開發量。

定義:用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。

1、原型模式其實就是從乙個物件再建立另外乙個可定製的物件,而且不需要知道任何建立的細節。

2、一般在初始化的資訊不發生變化的情況下,轉殖是最好的辦法,即隱藏了物件建立的細節,又對效能是大大的提高

3、不用重新初始化物件,而是動態的獲得物件執行時的狀態

定義:定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。

1、既然使用了繼承,並且肯定這個繼承有意義,就應該要成為子類的模板,所以重複的**都應該要上公升到父類去,而不是讓每個子類都去重複

2、當我們要完成在某一細節層次一致的乙個過程或一系列步驟,但其個別步驟在更詳細的層次上的實現可能不同時,我們通常考慮用模板方法模式來處理。

3、模板方法模式是通過把不變行為搬移到超類,去除子類中重複**來體現它的優勢

《數學之美》讀書筆記(六)(七)(八)(九)

資訊的度量和作用 資訊熵條件熵 互資訊相對熵 賈里尼克 布林代數和搜尋引擎 二進位制的布林代數 索引 搜尋引擎為什麼可以在如此短的時間內找如此巨量的內容?建立索引。最簡單的索引是用乙個很長的二進位制數表示乙個關鍵字是否出現在一篇文獻中 有多少篇文獻,就有多少位數,每一位對應一篇文獻,1代表相應的文獻...

大話設計模式筆記(十) 建造者模式

畫乙個小人,有頭 身體 兩手 兩腳就可以了。人類 created by callmedevil on 2019 7 21.public class person public void drawbody public void drawhand public void drawleg public ...

大話設計模式 筆記

簡單工廠模式 建立物件 switch 靜態工廠 策略模式 封裝變化 商品售賣 裝飾模式 在類的外部封裝新的功能 外部類要擁有對目標類的引用 模式 小明託小白追小紅 小明小紅豆實現了追求的介面 小白的實現追求介面呼叫小明的追求方法 工廠方法模式 與簡單工廠模式的區別 工廠模式是簡單工廠模式的進一步抽象...