標籤: Software Design

里氏替換原則:不可違背的契約

子類型必須能夠替換其基礎類型而不破壞程式正確性。這一原則確保繼承層次結構保持健全,但開發者經常透過看似無害的設計決策違反它。

開閉原則:在不破壞的情況下擴展

軟體實體應該對擴展開放,對修改關閉。這個原則承諾在不破壞的情況下提供靈活性,但開發者在何時應用抽象以及何時會變成過度工程方面掙扎。

單一職責原則:SOLID 設計的基石

一個類別應該只有一個改變的理由。這個簡單的陳述構成了 SOLID 設計的基礎,但開發者卻在什麼是「單一職責」以及何時拆分類別的問題上掙扎。