重新認識物件導向
理解隔離變化
• 從巨集觀層面來看,物件導向的構建方式更能適應軟體的變化,
能將變化所帶來的影響減為最小
各司其職
• 從微觀層面來看,物件導向的方式更強調各個類的「責任」
• 由於需求變化導致的新增型別不應該影響原來型別的實現——
是所謂各負其責
物件是什麼?
• 從語言實現層面來看,物件封裝了**和資料。
• 從規格層面講,物件是一系列可被使用的公共介面。
• 從概念層面講,物件是某種擁有責任的抽象。
物件導向設計原則(1)
依賴倒置原則(dip)
• 高層模組(穩定)不應該依賴於低層模組(變化),二者都應該依賴
於抽象(穩定) 。
• 抽象(穩定)不應該依賴於實現細節(變化) ,實現細節應該依賴於
抽象(穩定)。
物件導向設計原則(2)
開放封閉原則(ocp)
• 對擴充套件開放,對更改封閉。
• 類模組應該是可擴充套件的,但是不可修改。
物件導向設計原則(3)
單一職責原則(srp)
• 乙個類應該僅有乙個引起它變化的原因。
• 變化的方向隱含著類的責任。
物件導向設計原則(4)
liskov 替換原則(lsp)
• 子類必須能夠替換它們的基類(is
物件導向設計原則
oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...
物件導向設計原則
物件設計原則 物件導向設計原則 物件導向設計的基石是 開 閉 原則。開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這個規則說的是,在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。從另外乙個角度講,就是所謂的 對可變性封裝原則 對可變性封裝原則 意味著兩點 1 ...
物件導向設計原則
oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...