第2節 物件導向設計原則

2021-10-03 18:28:33 字數 1134 閱讀 8530

變化是復用的天敵,oop設計的最大優勢在於抵禦變化!

理解隔離化:巨集觀來講,oop方式能夠將變化所帶來的影響減為最小;

各司其職:微觀上看,oop更強調各個類的職責,由於需求的變化導致新增型別不改變原來的實現

物件是什麼:

1.1  高層模組(穩定)應該應依賴底層實現(變化),二者都應該依賴於抽象;

1.2 抽象不應該依賴細節實現的變化,實現細節應該依賴於抽象;

2.1  對擴充套件開發,對更改封閉

2.2 類模組應該是可擴充套件的,但是不可修改;

3.1 乙個類應該僅有乙個引起變化的原因;

3.2 變化的方向隱含著類的責任; *** 單個類不能太臃腫,這就隱含著多責

4.1  子類必須能夠替代他們的基類 :父類能做的,子類都可實現

4.2 繼承表達型別抽象:如果父類有很多方法子類沒用,說明是組合關係而非繼承關係

5.1  不應該強迫使用者依賴不用的方法;

5.2 介面應該小而完備:子類用則protected,只自己用則private,必要時才使用public

6.1  類繼承通常為"白箱復用",物件組合為"黑箱復用";

6.2 繼承在某種程度上破壞了封裝性,子類父類耦合度增加;

6.3 物件組合則要求物件具有良好的介面,耦合度低;

7.1  使用封裝來建立物件的分階層,設計者可以在分階層一次進行修改,而不影響另一次
8.1  不將型別變數宣告為具體類,而是某個介面;

8.2 客戶程式無需獲知物件的具體型別,而需知道物件介面;

8.3 減少系統中部分依賴關係,實現"高內聚、低耦合"的型別設計方案;

設計模式:主要描述類與相互通訊物件之間的組織關係,包括他們的角色、職責、寫作方式等方面;

架構模式:描述系統中與基本結構組織關係密切的高層模式,包括子系統劃分、職責,一級如何組織他們之間的關係規則;

#include

intmain()

物件導向設計原則

oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...

物件導向設計原則

物件設計原則 物件導向設計原則 物件導向設計的基石是 開 閉 原則。開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這個規則說的是,在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。從另外乙個角度講,就是所謂的 對可變性封裝原則 對可變性封裝原則 意味著兩點 1 ...

物件導向設計原則

oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...