SRP:單一職責原則
任何一個軟件模塊都應該只對某一類行爲者負責
OCP:開閉原則
主要目標時讓系統易於擴展,同時限制其每次被修改所影響的範圍。實現方式就是將系統分爲一系列組件,組件之間按層級關係分割,高階組件不會因低階組件的修改而收到影響。例子,系統中的輸出信息方式不會因顯示設變的不同而不同,因爲定義了統一的接口,所有的顯示設別驅動都要實現該接口
LSP:里氏替換原則
對於子類的定義,假設S類的實例o1,T類的實例o2。在P程序中原來是使用T類的,但是可以替換成S類
ISP:接口隔離原則
在一般情況下,任何層次的軟件設計如果依賴於不需要的東西,都會是有害的。所以需要一個接口層隔離不需要的東西。
DIP:依賴反轉
一個靈活的系統應該多引用抽象類,因爲抽象類是穩定的。類的調用不再依賴於具體實現類,而是抽象類