里氏代換
父類出現的地方一定能夠用子類來替換,因此要將父類設計為抽象的,而不要具體實現。
開閉原則
對修改關閉,對擴展開放。
依賴倒轉
依賴于抽象,而不要依賴于具體。高層不要依賴于低層,兩者都要依賴于抽象。
接口隔離
接口不要設計的太冗余,要盡量多的劃分接口,通過組合多個接口能夠使得程序設計更加靈活。
迪米特法則
通過合理的引入中間類來做中介,降低耦合,避免類之間的直接依賴。
單一職責原則
每個類都有自己的任務,一個類只實現一個功能,拆分職責,細化功能粒度,各司其職。
合成復用原則
多用組合少用繼承。