設計模式有 六大設計原則,最經典的23種設計模式中通常都使用這些設計原則進行設計的。掌握好這六大設計原則比掌握設計模更爲重要(我的以爲),掌握了這六大設計原則,可讓咱們更好的使用設計模式。甚至於平常敲代碼的實踐中,基於這六大設計原則咱們也在無形中使用了設計模式。設計模式
高層模塊不該該依賴於底層模塊,高層和底層模塊都應該依賴於抽象。函數
抽象不該該依賴於細節,細節應該依賴於抽象。設計
就一個類而言,應該僅有一個引發它變化的緣由。若是一個類有多個緣由引發了變化,那麼就要思考是否要把類分開了。類的職責應該是單一的,不一樣的類具備不一樣的職責,類與類之間也要分工協做,互不影響,各司其職。繼承
軟件實體(類、模塊、函數等)應該能夠擴展,可是不能修改。對擴展開放,對修改關閉。 在實際開發中,咱們應去擴展類,而不是去修改類。接口
子類型必須可以替換掉它們的父類型。當子類可以替換掉父類,且軟件的行爲沒有發生變化,此時父類才能真正的被複用,而子類也可以在父類的基礎上增長新的行爲。里氏替換原則使得繼承複用成爲了可能。ip
一個類與另外一個類之間的依賴性,應該依賴於儘量小的接口,沒必要要向外暴露沒必要要的內容。ci
Only talk to you immediate friends.開發
只和你直接的朋友交互,也就是:高內聚,低耦合。不要作過多的無聊的交互,只交互最有價值最簡潔的內容。it