1、單一職責原則——srp
2、開閉原則——ocp
3、裡式替換原則——lsp
4、依賴倒置原則——dip
5、介面隔離原則——isp
6、迪公尺特原則——lod
1、單一職責原則——srp
單一職責原則的定義是就乙個類而言,應該僅有乙個引起他變化的原因。
也就是說乙個類應該只負責一件事情。如果乙個類負責了方法m1,方法m2兩個不同的事情,當m1方法發生變化的時候,我們需要修改這個類的m1方法,但是這個時候就有可能導致m2方法不能工作。這個不是我們期待的,但是由於這種設計卻很有可能發生。所以這個時候,我們需要把m1方法,m2方法單獨分離成兩個類。讓每個類只專心處理自己的方法。
單一職責原則的好處如下:
1、可以降低類的複雜度,乙個類只負責一項職責,這樣邏輯也簡單很多
2、提高類的可讀性,和系統的維護性,因為不會有其他奇怪的方法來干擾我們理解這個類的含義
3、當發生變化的時候,能將變化的影響降到最小,因為只會在這個類中做出修改。
2、開閉原則——ocp
開閉原則的定義是軟體中的物件(類,模組,函式等)應該對於擴充套件是開放的,但是對於修改是關閉的。
當需求發生改變的時候,我們需要對**進行修改,這個時候我們應該盡量去擴充套件原來的**,而不是去修改原來的**,因為這樣可能會引起更多的問題。
這個準則和單一職責原則一樣,是乙個大家都這樣去認為但是又沒規定具體該如何去做的一種原則。
開閉原則我們可以用一種方式來確保他,我們用抽象去構建框架,用實現擴充套件細節。這樣當發生修改的時候,我們就直接用抽象了派生乙個具體類去實現修改。
3.黎克特制替換原則
所有引用基類的地方必須能夠透明地使用其子類的物件。
黎克特制替換原則通俗的去講就是:子類可以去擴充套件父類的功能,但是不能改變父類原有的功能。他包含以下幾層意思:
子類可以實現父類的抽象方法,但是不能覆蓋父類的非抽象方法。
子類可以增加自己獨有的方法。
當子類的方法過載父類的方法時候,方法的形參要比父類的方法的輸入引數更加寬鬆。
當子類的方法實現父類的抽象方法時,方法的返回值要比父類更嚴格。
4.依賴倒置原則
依賴倒置原則指的是一種特殊的解耦方式,使得高層次的模組不應該依賴於低層次的模組的實現細節的目的,依賴模組被顛倒了。
高層模組不應該依賴底層模組,兩者都應該依賴其抽象
抽象不應該依賴細節
細節應該依賴抽象
5.介面隔離原則
客戶端不應該實現他不需要的介面
6.迪公尺特原則 - 最小知識原則
乙個物件應該對其他物件保持最小的了解。
因為類與類之間的關係越密切,耦合度越大,當乙個類發生改變時,對另乙個類的影響也越大,所以這也是我們提倡的軟體程式設計的總的原則:低耦合,高內聚。
物件導向6大原則
單一職責原則的定義是就乙個類而言,應該僅有乙個引起他變化的原因。也就是說乙個類應該只負責一件事情。如果乙個類負責了方法m1,方法m2兩個不同的事情,當m1方法發生變化的時候,我們需要修改這個類的m1方法,但是這個時候就有可能導致m2方法不能工作。這個不是我們期待的,但是由於這種設計卻很有可能發生。所...
物件導向7大原則
單一職責 乙個物件應該只包含單一的職責,並且該職責被完整地封裝在乙個類中。開放閉合原則 開閉原則就是指軟體實體應當盡量保證在不修改原有 的情況下,對軟體進行擴充套件。開閉原則是物件導向設計的基石。黎克特制替換原則 根據 執行時子類物件覆蓋父類物件 的特點保證繼承關係的正確性 依賴倒置 1 抽象不依賴...
物件導向7大原則
單一職責原則,就乙個類而言,應該僅有乙個引起它變化的原因。開放 封閉原則,是說軟體實體應該面向擴充套件開發,面向修改關閉。依賴倒轉原則,a 高層模組不應該依賴底層模組。兩個都應該依賴抽象 b 抽象不應該依賴細節。細節應該依賴抽象。黎克特制代換原則,凡是父類能出現的地方,子類都應該能出現。迪公尺特法則...