單一職責原則SRP(Single Responsibility Principle)
是指一個類的功能要單一璧榄,不能包羅萬象漫贞。如同一個人一樣督笆,分配的工作不能太多处渣,否則一天到晚雖然忙忙碌碌的,但效率卻高不起來具體業(yè)務(wù)邏輯處理層
開放封閉原則OCP(Open-Close Principle)
一個模塊在擴展性方面應該是開放的而在更改性方面應該是封閉的而咆。比如:一個網(wǎng)絡(luò)模塊霍比,原來只服務(wù)端功能,而現(xiàn)在要加入客戶端功能暴备,那么應當在不用修改服務(wù)端功能代碼的前提下悠瞬,就能夠增加客戶端功能的實現(xiàn)代碼,這要求在設(shè)計之初涯捻,就應當將服務(wù)端和客戶端分開浅妆,公共部分抽象出來。
里式替換原則LSP(the Liskov Substitution Principle LSP)
子類應當可以替換父類并出現(xiàn)在父類能夠出現(xiàn)的任何地方障癌。比如:公司搞年度晚會凌外,所有員工可以參加抽獎,那么不管是老員工還是新員工涛浙,也不管是總部員工還是外派員工康辑,都應當可以參加抽獎,否則這公司就不和諧了轿亮。
依賴倒置原則DIP(the Dependency Inversion Principle DIP)
抽象不應該依賴于細節(jié)疮薇,細節(jié)應當依賴于抽象。換言之我注,要針對接口編程按咒,而不是針對實現(xiàn)編程。具體依賴抽象但骨,上層依賴下層励七。假設(shè)B是較A低的模塊,但B需要使用到A的功能奔缠,這個時候掠抬,B不應當直接使用A中的具體類: 而應當由B定義一抽象接口,并由A來實現(xiàn)這個抽象接口校哎,B只使用這個抽象接口:這樣就達到了依賴倒置的目的剿另,B也解除了對A的依賴,反過來是A依賴于B定義的抽象接口贬蛙。通過上層模塊難以避免依賴下層模塊,假如B也直接依賴A的實現(xiàn)谚攒,那么就可能 造成循環(huán)依賴阳准。一個常見的問題就是編譯A模塊時需要直接包含到B模塊的cpp文件,而編譯B時同樣要直接包含到A的cpp文件馏臭。
接口分離原則ISP(the Interface Segregation Principle ISP)
模塊間要通過抽象接口隔離開野蝇,而不是通過具體的類強耦合起來讼稚。
迪米特法則\最少知識原則(Law of Demeter, LoD)
一個軟件實體應當盡可能少地與其他實體發(fā)生相互作用。
合成復用原則 (Composite Reuse Principle, CRP)
盡量使用對象組合绕沈,而不是繼承來達到復用的目的锐想。
https://blog.csdn.net/rainjm/article/details/78642206
基本原則概述
單一職責原則
開閉原則
里氏代換原則
依賴倒轉(zhuǎn)原則
接口隔離原則
迪米特法則
合成復用原則
如何在類圖中標注設(shè)計模式(一)