1.單一職責
簡單來說單一職責就是一個類只負責一個功能。更加具體的說就是對一個類而言客燕,應該是一組相關性很高的函數鸳劳、數據的封裝狰贯,是高內聚低耦合的也搓,對外界而言應該僅有一個引起它變化的原因
2.開閉原則
開閉原則的英文全稱是Open Close Principle縮寫即OCP赏廓。開閉原則的定義是:軟件中的對象(類、模塊傍妒、函數等)應該對于擴展是開放的幔摸,但是對于修改是封閉的。在軟件的生命周期內颤练,因為變化既忆、升級和維護等原因需要對軟件的原有代碼進行修改時,可能會將錯誤的代碼引入嗦玖,從而破壞原有系統(tǒng)患雇。因此當軟件需求發(fā)生變化時,我們應該盡量通過擴展的方式 來實現變化宇挫,而不是通過修改已有的代碼苛吱。
開閉原則在項目中的使用:
1.基類與子類,子類可以繼承父類并擴展父類的功能
2.接口與實現類器瘪,接口定義功能翠储,實現類按照各自的需求實現
3.里氏替換原則
里氏替換原則的定義:如果對每一個類型為S的對象O1,都有類型為T的對象O2橡疼,程序P在所有的對象O1都帶換成O2時援所,程序P的行為沒有發(fā)生變化,那么類型S是類型T的子類型換言之就是所有引用基類的地方必須能透明的使用其子類的對象欣除。更通俗的講就是只要父類出現的地方子類就可以出現住拭,而且替換為子類也不會產生任何的錯誤或者異常。
里氏替換原則的核心是抽象耻涛,而抽象又依賴于繼承這個特性废酷,在OOP當中,繼承的優(yōu)缺點都相當明顯抹缕。
優(yōu)點:
1.代碼重用澈蟆,減少創(chuàng)建類的成本,每個子類都擁有父類的方法和屬性
2.子類與父類基本相似卓研,但又與父類有所區(qū)別
3.提高代碼的可擴展性
缺點:
1.繼承是侵入性的趴俘,只要繼承就必須擁有父類的方法和屬性
2.可能造成子類代碼冗余,靈活性降低奏赘,因為子類必須擁有父類的屬性和方法
4.依賴倒置原則
依賴倒置原則指定了一種特定的解耦形式寥闪,使得高層次的模塊不依賴與低層次模塊的實現細節(jié)的目的,依賴模塊被顛倒了磨淌。依賴倒置原則有以下幾個關鍵點:
1.高層模塊不應該依賴于低層模塊疲憋,兩者都應該依賴其抽象
2.抽象不應該依賴于細節(jié)
3.細節(jié)應該依賴于抽象
5.接口隔離原則
接口隔離原則的定義是:客戶端不應該依賴于他不需要的接口。另一種定義是:類之間的依賴關系應該建立在最小的接口上梁只。接口隔離原則將非常龐大缚柳,臃腫的接口拆分成更小的和更具體的接口埃脏,這樣客戶端將會值需要知道它們感興趣的方法。接口隔離原則的目的是系統(tǒng)解開耦合秋忙,從而容易重構彩掐、更改和部署。
6.迪米特原則
迪米特原則:一個對象應該對其他對象有最少的了解灰追,通俗的講堵幽,一個類應該對自己需要耦合或調用的類知道的最少,類的內部如何實現與調用者或者依賴者沒有關系弹澎,調用者或者依賴者只需要知道他需要的方法即可朴下,其他的一概不管。類與類之間的關系越密切苦蒿,耦合度越大桐猬,當一個類發(fā)生改變時,對另一個類的影響也越大刽肠。