名字看起來類似adapter,事實(shí)上完全不同。
兩個(gè)原則:
1.封裝變化點(diǎn)
第一個(gè)原則更為重要,明確給出了設(shè)計(jì)的依據(jù)。
例:
作圖程序,circle 和tangle繼承了sharp。
問題出現(xiàn):你需要同時(shí)考慮在顯示屏上畫圖,或在pda上畫圖(完全是假設(shè)情況)
那么是否需要為每個(gè)類增加一個(gè)附本?Circle和Circle_pda?這會導(dǎo)致冗余和過多的類。
參照第一個(gè)原則,這里有兩個(gè)變化點(diǎn) :1是什么圖形 2是什么環(huán)境(實(shí)現(xiàn)的方式)
用Sharp的繼承樹,記錄第一變化點(diǎn)。
用Drawing的繼承樹,記錄第二變化點(diǎn)。
同時(shí)在Sharp中,組合Drawing.
原文我并沒有仔細(xì)看,總之我的直觀感覺就是:
一個(gè)繼承樹反映一個(gè)變化點(diǎn),使用組合的方式工作。相當(dāng)于把設(shè)計(jì)二緯化,使x軸和y軸的設(shè)計(jì)能夠相對獨(dú)立。