這些原則都是由robert c.martin提出來的。建議大家去看他的agile software development
there are five principles of class design (aka solid):
就乙個類而言,應該僅有乙個引起它變化的原因。
軟體實體(類,模組,函式)應該是可以擴充套件的,但是不可修改的。
子型別必須能偶替換掉它們的基型別。
不應該強迫客戶依賴於它們不用的方法。介面屬於客戶,不屬於它所在的類層次結構。
抽象不應該依賴於細節。細節應該依賴於抽象。
there are three principles of package cohesion重用的粒度就是發布的粒度。
包中的所有類對於同一類性質的變化應該是共同封閉的。乙個變化若對乙個包產生影響,則將對該包中的所有類產生影響,而對其他的包不造成任何影響。
乙個包中的所有類應該是共同重用的。如果重用了包中的乙個類,那麼就要重用包中的所有類。
there are three principles of package coupling在包的依賴關係圖中不允許存在環。
朝著穩定的方向進行依賴。
包的抽象程度應該和其穩定程度一致。
物件導向設計原則
oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...
物件導向設計原則
物件設計原則 物件導向設計原則 物件導向設計的基石是 開 閉 原則。開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這個規則說的是,在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。從另外乙個角度講,就是所謂的 對可變性封裝原則 對可變性封裝原則 意味著兩點 1 ...
物件導向設計原則
oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...