軟件開發(fā)的一個不變真理:變化
不管當(dāng)初軟件設(shè)計得多好窜觉,一段時間之后谷炸,總是需要成長與改變,否則軟件就會”死亡“
設(shè)計原則1
- 找出應(yīng)用中可能需要變化指出禀挫,把它們獨立出來旬陡,不要和那些不需要變化的代碼混在一起
把會變化的部分取出并封裝起來,好讓其他部分不會受到影響语婴。結(jié)果如何描孟?代碼變化引起的不經(jīng)意后果變少,系統(tǒng)變得更有彈性砰左!
設(shè)計原則2
- 針對接口編程匿醒,而不是針對實現(xiàn)編程。
針對接口編程真正的意思是”針對超類型編程“菜职,更可以明確的說成”變量的聲明類型應(yīng)該是超類型青抛,通常是一個抽象類或者是一個接口,如此只要是具體實現(xiàn)此超類型的類所產(chǎn)生的對象酬核,都可以指定給這個變量蜜另。這也意味著举瑰,聲明類時不用理會以后執(zhí)行時的真正對象類型汽畴!”
設(shè)計原則3
- 優(yōu)先使用組合而不是繼承
使用組合創(chuàng)建系統(tǒng)給了你更大的彈性。不僅是讓你把一個算法家族封裝進他們自己的一組類罢坝,而且讓你在運行時改變行為搅窿,只要組合的對象實現(xiàn)正確的行為接口闹司。
策略模式
定義了一個算法族众弓,分別封裝起來隔箍,是的他們之間可以相互轉(zhuǎn)換滨达。策略讓算法的變法獨立于使用它的客戶