1.abstract-oriented
面向抽象原則
我的理解就是把程序的功能抽象成接口,面向接口編程。
2.open-close principle
開-閉原則
讓設(shè)計(jì)對擴(kuò)展開發(fā),對修改關(guān)閉。
如果針遵守開閉原則,那么這個(gè)設(shè)計(jì)一定是易于維護(hù),因?yàn)樵黾有履K的時(shí)候,不必更改核心模塊
3.多用組合,少用繼承
方法復(fù)用有兩種技術(shù),一種是繼承,另一種組合。
繼承的缺點(diǎn):
1.子類和父類是強(qiáng)耦合關(guān)系,父類發(fā)生變化,可能會(huì)導(dǎo)致子類發(fā)生變化。
2.無法在運(yùn)行期間改變從父類繼承的方法的行為。
3.是一種白盒復(fù)用
組合是把其它類作為一個(gè)成員變量構(gòu)成自己的組成部
組合的優(yōu)點(diǎn):
1.是一種黑盒復(fù)用
2.在運(yùn)行期間可以動(dòng)態(tài)指定包含的對象
4.高內(nèi)聚,低耦合-
內(nèi)聚是指內(nèi)容相關(guān)的行為放在一個(gè)類里。就是一個(gè)類應(yīng)該有自己應(yīng)該具備的功能。
耦合是指類與類之間的相交。
這樣做的好處是修改系統(tǒng)的不部份功能,不至于影響其它部份。