设计模式---读书笔记
一、文章來(lái)由
按照慣例,來(lái)一個(gè)來(lái)由,這是《設(shè)計(jì)模式—可復(fù)用面向?qū)ο筌浖幕A(chǔ)》的讀書(shū)筆記,整理給自己看的,整理的內(nèi)容也會(huì)不斷更新。大神輕噴~~如果不喜歡請(qǐng)留言說(shuō)明原因再踩哦,謝謝,我也可以知道原因,不斷進(jìn)步
二、讀書(shū)筆記
1、P12 可復(fù)用的面向?qū)ο笤O(shè)計(jì)的原則:
(1)針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程。不將變量聲明為某個(gè)特定的具體類(lèi)的實(shí)例對(duì)象,而是讓它遵從抽象類(lèi)所定義的接口;
(2)優(yōu)先使用對(duì)象組合,而不是類(lèi)繼承。理想情況下,你不應(yīng)為獲得復(fù)用而去創(chuàng)建新的構(gòu)件。你應(yīng)該能夠只使用對(duì)象組合技術(shù),通過(guò)組裝已有的構(gòu)件就能獲得你需要的功能。但是事實(shí)很少如此,因?yàn)榭捎脴?gòu)件的集合實(shí)際上并不足夠豐富。使用繼承的復(fù)用使得創(chuàng)建新的構(gòu)件要比組裝舊的構(gòu)件來(lái)得容易。這樣,繼承和對(duì)象組合常一起使用。
2、P14 委托
委托(delegation)是一種組合方法,它使組合具有與繼承同樣的復(fù)用能力。舉例來(lái)說(shuō),我們可以在窗口類(lèi)中保存一個(gè)矩形類(lèi)的實(shí)例變量來(lái)代理矩形類(lèi)的特定操作,這樣窗口類(lèi)可以復(fù)用矩形類(lèi)的操作,而不必像繼承時(shí)那樣定義成矩形類(lèi)的子類(lèi)。也就是說(shuō),一個(gè)窗口擁有一個(gè)矩形,而不是一個(gè)窗口就是一個(gè)矩形。窗口現(xiàn)在必須顯式的將請(qǐng)求轉(zhuǎn)發(fā)給它的矩形實(shí)例,而不是像以前它必須繼承矩形的操作。
3、三種復(fù)用機(jī)制:
(1)繼承和組合(繼承是編譯時(shí)靜態(tài)定義,組合可在運(yùn)行時(shí)確定)
(2)委托
(3)參數(shù)化類(lèi)型,即template
4、P20 設(shè)計(jì)模式所支持的設(shè)計(jì)的可變方面
設(shè)計(jì)模式允許你獨(dú)立變化的方面,你可以改變它們而又不會(huì)導(dǎo)致重新設(shè)計(jì)。
5、P33 工廠類(lèi)和產(chǎn)品類(lèi)
這里用到了多態(tài),我在我的另一篇博文里面也提到過(guò)
6、P37 對(duì)變化的概念進(jìn)行封裝
在一給定平臺(tái)上建立 Lexi 時(shí),我們選擇一個(gè)相應(yīng)的版本。但想象一下,維護(hù)問(wèn)題實(shí)在令人頭
疼,我們已經(jīng)保存了多個(gè)名字都是“Window”的類(lèi),而每一個(gè)類(lèi)實(shí)現(xiàn)于一個(gè)不同的窗口系統(tǒng)。
另一種方法是為每一個(gè)窗口層次結(jié)構(gòu)中類(lèi)創(chuàng)建特定實(shí)現(xiàn)的子類(lèi),但這會(huì)產(chǎn)生我們?cè)谠噲D增加
修飾時(shí)遇到的同樣的子類(lèi)數(shù)目爆炸問(wèn)題。這兩種方法還都有另一個(gè)缺點(diǎn):我們沒(méi)有在編譯以
后改變所用窗口系統(tǒng)的靈活性。所以我們還不得不保持若干不同的可執(zhí)行程序。
既然這兩種方法都沒(méi)有吸引力,那么我們還能做些什么呢?那就是我們?cè)诟袷交托揎?
時(shí)都做過(guò)的:對(duì)變化的概念進(jìn)行封裝。現(xiàn)在所變化的是窗口系統(tǒng)實(shí)現(xiàn)。如果我們能在一個(gè)對(duì)象中封裝窗口系統(tǒng)的功能,那么我們就能根據(jù)對(duì)象接口實(shí)現(xiàn) Window 類(lèi)及其子類(lèi)。更進(jìn)一步講,如果那個(gè)接口能夠提供我們所感興趣的所有窗口系統(tǒng)的服務(wù),那么我們無(wú)需改變 Window 類(lèi)或其子類(lèi),也能支持不同的窗口系統(tǒng)。我們可以通過(guò)簡(jiǎn)單傳遞合適的窗口系統(tǒng)封裝對(duì)象,來(lái)給我們想要的窗口系統(tǒng)設(shè)定窗口對(duì)象。我們甚至能在運(yùn)行時(shí)刻設(shè)定窗口。
這個(gè)總結(jié)一下就是:因?yàn)樽兓牡胤绞遣淮_定的,可能會(huì)外包給很多人去寫(xiě),所以要有一個(gè)統(tǒng)一的、穩(wěn)定的接口,其他的封裝成不同類(lèi)。
7、P40 Bridge模式
總結(jié)
以上是生活随笔為你收集整理的设计模式---读书笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Hdu 4916 Count on th
- 下一篇: 怎么下载b612咔叽(word怎么打出~