oo設計根本的指導原則是提高可維護性和可復用性。這些原則主要有:
1.單一職責原則
就乙個類而言,應該僅有乙個引起它的變化的原因
最簡單,最單純的事情最容易控制,最有效
類的職責簡單而且集中,避免相同的職責分散到不同的類之中,避免乙個類承擔過多的職責
2. 開閉原則
乙個軟體實體(類,模組或元件)應該對擴充套件開放,對修改關閉。
在設計乙個模組的時候,就當使這個模組可以在不被修改的前提下被擴充套件。換言之,就當可以在不必修改源**的情況下改變這個模組的行為。
3. 依賴倒轉原則
依賴倒轉原則講的是:要依賴於抽象,不要信賴於實現。
開閉原則是目標,而達到這一目標的手段是依賴倒轉原則
4. 黎克特制代換原則
任何基類可以出現的地方,子類一定可以出現。
5. 合成/聚合復用原則
要盡量使用合成/聚合,而不是繼承關係達到復用的目的。
6. 迪公尺特原則
乙個軟體實體應當盡可能少的其他實體發生相互作用。模組之間的互動要少。這樣做的結果是當系統的功能需要擴充套件時,會相對更容易地做到對修改的關閉。
乙個物件應當對其他物件有盡可能少的了解。
7. 介面隔離原則
應當為客戶端提供盡可能小的單獨介面,而不要提供大的總介面。
也即是使用多個專門的介面比使用單一的總介面要好。
幾句經典話:
優先考慮使用組合,而不是繼承;
對擴充套件開放,對修改封閉;
面向介面程式設計,而不要面對實現程式設計;
乙個物件只負有一種責任;
don't call me, i will call you.
以上原則不必嚴格遵守,但是在設計程式設計是時應拿此參考。總之,目的是使設計最明了,最簡單(個人意見)
物件導向設計原則
oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...
物件導向設計原則
物件設計原則 物件導向設計原則 物件導向設計的基石是 開 閉 原則。開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這個規則說的是,在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。從另外乙個角度講,就是所謂的 對可變性封裝原則 對可變性封裝原則 意味著兩點 1 ...
物件導向設計原則
oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...