OOP面向對象的七大設計原則
一. 開閉原則?OCP(Open-Closed Principle)
核心思想:對擴展開發(fā),對修改關閉。
好處:可以提高代碼的可復用性??梢蕴岣叽a的可維護性。
?
二.里氏代換原則?LSP(Liskov Substitution Principle)
核心思想:繼承必須確保超類所擁有的性質(zhì)在子類中仍然成立。在任何父類出現(xiàn)的地方子類都可以替換。
好處:克服了繼承中重寫父類造成的可復用性變差的問題。
??
三. 依賴倒置原則?DIP(Dependency Inversion Principle)
核心思想:要面向接口編程,不要面向實現(xiàn)編程。降低各個對象之間的耦合,提高系統(tǒng)的可維護性。
好處:降低類之間的耦合性。提高系統(tǒng)的穩(wěn)定性。減少并行開發(fā)引起的風險。提高代碼的可讀性和可維護性。
?
四. 單一職責原則 SRP(Single Resposibility Principle)
核心思想:一個類應該有且僅有一個引起它變化的原因,否則類應該被拆分。
也就是說每個類應該只有一個職責,對外提供一種職能,而引起類變化的原因應該只有一個。
好處:降低類的復雜度。一個類只負責一項職責,其邏輯肯定要比負責多項職責簡單得多。
五.接口隔離原則?ISP(Interface Insolation Principle)
核心思想:一個接口不需要提供太多的行為,一個接口應該只提供一種對外的功能,不應該把所有的操作都封裝到一個接口中。
好處:提高系統(tǒng)的靈活性和可維護性。接口隔離提高了系統(tǒng)的內(nèi)聚性,減少了對外交互,降低了系統(tǒng)的耦合性。
?
六.迪米特法則?LoD(Law Of Demeter or Principle of Least Knowledge)
核心思想:一個類對于其他類知道的越少越好,就是說一個對象應當對其他對象有盡可能少的了解,只和朋友通信,不和陌生人說話。
好處:降低了類之間的耦合度,提高了模塊的相對獨立性。由于親合度降低,從而提高了類的可復用率和系統(tǒng)的擴展性。
?
七.合成復用原則 CRP(Composite Reuse Principle)
核心思想:復用時,要盡量先使用組合或者聚合等關聯(lián)關系來實現(xiàn),其次才考慮使用繼承關系來實現(xiàn)。
好處:通常類的復用分為繼承復用和合成復用兩種。繼承復用雖然簡單易實現(xiàn)。新舊類之間的耦合度低。復用的靈活性高。
?
八.總結-各種原則要求的側重點不同:
開閉原則:對擴展開放,對修改關閉。
里氏替換原則:不要破壞繼承體系。
依賴倒置原則:要面向接口編程。
單一職責原則:實現(xiàn)類要職責單一。
接口隔離原則:設計接口的時候要精簡單一。
迪米特法則:要降低耦合度。
合成復用原則:要優(yōu)先使用組合或者聚合關系復用,少用繼承關系復用。
?
--學無止境,愛拼才會贏
鏈接:https://www.dianjilingqu.com/537689.html