1)找出應用中可能須要變化的地方,把他們獨立出來,不要和那些不須要變化的代碼混合在一塊編程
2)針對接口編程,而不是針對實現編程。針對接口編程,實際上指針對超類編程。超類型能夠是一個接口類,也能夠是一個抽象類。具體實現具體對待使用spa
3)多用組合,少用繼承。「有一個」比「是一個」更好設計
4)爲了交互對象之間的鬆耦合設計而努力,鬆耦合設計可以讓咱們創建有彈性的OO系統,可以應對變化,由於對象之間的相互依賴已經降到最低指針
5)開發-關閉原則:對修改關閉,對擴展開放。咱們的原則是容許類進行擴展,在不修改現有代碼的狀況下,經過擴展新類就能夠實現新的行爲對象
6)依賴倒置原則:依賴抽象,不依賴於具體類。不能讓高層組件依賴於底層組件。不管高層組件或底層組件,都要依賴於抽象繼承