- 單一職能(一個(gè)類(lèi)一個(gè)用途)【類(lèi)的個(gè)體特性】
- 開(kāi)閉原則(繼承羔巢,已寫(xiě)的代碼對(duì)修改封閉,對(duì)繼承開(kāi)放)【父子間關(guān)系】【繼承】
- 里氏替換原則(不要修改父類(lèi)函數(shù)的邏輯须教,而要兼容崖疤、發(fā)展)【父子間關(guān)系】【繼承】
- 迪米特(只和自己朋友而不直接和陌生人打交道)(朋友關(guān)系是對(duì)象之間有耦合關(guān)系。耦合的方式:依賴蜕依、關(guān)聯(lián)桅锄、組合琉雳、聚合等)【只與直接的朋友通信】【類(lèi)間關(guān)系】
- 接口隔離(最小接口化)(和不同對(duì)象通過(guò)不同的接口打交道)【通過(guò)不同接口實(shí)現(xiàn)和不同類(lèi)的交流】【類(lèi)間關(guān)系】
- 依賴倒置(接口或抽象類(lèi)不依賴于實(shí)現(xiàn)類(lèi);實(shí)現(xiàn)類(lèi)依賴接口或抽象類(lèi)友瘤。)(通過(guò)接口進(jìn)行依賴翠肘,不通過(guò)實(shí)現(xiàn)依賴)【類(lèi)間關(guān)系】【面向接口編程】
面向?qū)ο蟮牧笤瓌t
單一職責(zé)原則
只將高度相關(guān)的變量、方法放在同一個(gè)類(lèi)中
開(kāi)閉原則
一個(gè)類(lèi)應(yīng)該對(duì)于擴(kuò)展是開(kāi)放的辫秧,但是對(duì)于修改是封閉的
我們?cè)谝婚_(kāi)始編寫(xiě)代碼時(shí)束倍,就應(yīng)該注意盡量通過(guò)擴(kuò)展的方式實(shí)現(xiàn)新的功能,而不是通過(guò)修改已有的代碼實(shí)現(xiàn)
2杳弧肌幽!里氏替換原則(向下兼容)
所有引用基類(lèi)的地方必須能透明地使用其子類(lèi)對(duì)象。
類(lèi)B繼承類(lèi)A時(shí)抓半,除添加新的方法完成新增功能外喂急,盡量不要重寫(xiě)父類(lèi)A的方法,也盡量不要重載父類(lèi)A的方法
通俗的來(lái)講就是子類(lèi)可以擴(kuò)展父類(lèi)的功能笛求,但不能改變方法原有的功能廊移。它包含以下4層含義:
子類(lèi)可以實(shí)現(xiàn)父類(lèi)的抽象方法,但不能覆蓋父類(lèi)的非抽象方法探入。
子類(lèi)中可以增加自己特有的方法狡孔。
當(dāng)子類(lèi)的方法重載父類(lèi)的方法時(shí),方法的前置條件(即方法的形參)要比父類(lèi)方法的輸入?yún)?shù)更寬松蜂嗽。
當(dāng)子類(lèi)的方法實(shí)現(xiàn)父類(lèi)的抽象方法時(shí)苗膝,方法的后置條件(即方法的返回值)要比父類(lèi)更嚴(yán)格。
依賴倒置原則
模塊間以抽象類(lèi)型傳參植旧,而不是聲明為具體的實(shí)現(xiàn)類(lèi)辱揭,以實(shí)現(xiàn)解耦
接口隔離原則
類(lèi)之間的依賴關(guān)系應(yīng)該建立在最小的接口上。
每一個(gè)接口應(yīng)該承擔(dān)一種相對(duì)獨(dú)立的角色病附,不干不該干的事问窃,該干的事都要干
接口功能拆分至恰到好處
!完沪!迪米特原則
一個(gè)對(duì)象應(yīng)該對(duì)其他的對(duì)象有最少的了解
對(duì)外只提供最終的功能函數(shù)
面向?qū)ο笾饕卣鳎?/h3>
封裝性域庇、繼承性、多態(tài)性
三個(gè)主要目標(biāo):重用性覆积、靈活性听皿、擴(kuò)展性
繼承中的三種方法:重載、重寫(xiě)宽档、多態(tài)
重載:在同一個(gè)類(lèi)中写穴,有著相同名稱(chēng),而形式參數(shù)不同的方法
對(duì)于同一個(gè)類(lèi)雌贱,如果這個(gè)類(lèi)里面有兩個(gè)或者多個(gè)重名的方法啊送,但是方法的參數(shù)個(gè)數(shù)、類(lèi)型欣孤、順序至少有一個(gè)不一樣馋没,這時(shí)候就構(gòu)成方法重載
重寫(xiě):子類(lèi)繼承父類(lèi)后,覆蓋父類(lèi)某個(gè)方法(非private)的操作(名稱(chēng)降传、參數(shù)個(gè)數(shù)篷朵、參數(shù)類(lèi)型都相同)。
多態(tài):分為編譯時(shí)多態(tài)(靜態(tài))和運(yùn)行時(shí)多態(tài)(動(dòng)態(tài))婆排,前者主要指方法的重載声旺,后者指繼承向上轉(zhuǎn)型中的動(dòng)態(tài)綁定。