在這里自說自話一波,六大原則之間總感覺有重合的地方羞反。
單一職責(zé)原則:
就是一個(gè)類要看著他的文檔規(guī)范或者名字開發(fā)布朦,他叫桌子就不能把椅子的東西寫進(jìn)去,就是要做同類型符合這個(gè)類名字的事情昼窗。具體可以看看斯坦福的軟件工程課程?點(diǎn)這里是趴。
準(zhǔn)確解釋是,就一個(gè)類而言澄惊,應(yīng)該僅有一個(gè)引起它變化的原因唆途。
里氏替換原則:
任何父類出現(xiàn)的地方都可以用子類代替富雅。
網(wǎng)上大多數(shù)的解釋是四條,
1.子類可以實(shí)現(xiàn)父類的抽象方法肛搬,但不能覆蓋父類的非抽象方法吹榴。
2.子類中可以增加自己特有的方法。
3.當(dāng)子類的方法重載父類的方法時(shí)滚婉,方法的前置條件(即方法的形參)要比父類方法的輸入?yún)?shù)更寬松。
4.當(dāng)子類的方法實(shí)現(xiàn)父類的抽象方法時(shí)帅刀,方法的后置條件(即方法的返回值)要比父
但就我目前的水平让腹,我的理解還是,只要你注意這個(gè)類或者方法是怎么描述的扣溺,如果描述足夠準(zhǔn)確骇窍,在描述范圍內(nèi)寫就好了。比如锥余,父類文檔要求你返回一個(gè)object腹纳,那么子類可以是String,Long什么的驱犹,但是要求你返回String嘲恍,你就不能返回object。
依賴導(dǎo)致原則:
個(gè)人覺得這句話應(yīng)該記住雄驹。
高層模塊不應(yīng)該依賴低層模塊佃牛,二者都應(yīng)該依賴其抽象;抽象不應(yīng)該依賴細(xì)節(jié)医舆;細(xì)節(jié)應(yīng)該依賴抽象俘侠。
用接口減弱代碼之間的耦合性。利用好java的特性蔬将。
多用抽象的接口來描述相同的動作爷速,降低實(shí)現(xiàn)這個(gè)動作的人和物之間的耦合度
總的來說就是面向接口編程。
接口隔離原則:
也就是接口最小原則霞怀,一個(gè)接口里面方法要簡單惫东。其實(shí)和單一職責(zé)原則挺像的。
接口盡量要細(xì)分里烦,不同功能的方法不要寫在一個(gè)接口里面凿蒜。
迪米特法則:
對于被依賴的類來說,無論邏輯多么復(fù)雜胁黑,都盡量地的將邏輯封裝在類的內(nèi)部废封,對外除了提供的public方法,不對外泄漏任何信息丧蘸。
開閉原則:
寫完了代碼漂洋,要保證的是你的代碼能擴(kuò)展遥皂,但是盡量不要修改。
感覺這六大原則之間是互相補(bǔ)充刽漂,互相依賴演训。總有說不清道不明的關(guān)系在里面贝咙。開發(fā)的過程中一定要好好體會著六大原則样悟,背熟是沒有意義的,要把他們?nèi)谌氲侥愕拇a風(fēng)格中去庭猩。背熟是會編碼的一個(gè)必要條件窟她。要我面試,我肯定先問這個(gè)蔼水,這個(gè)都不熟悉震糖,說明對代碼的理解還是有欠缺的。