引言
在應用的開發過程中,最難的不是完成開發工作、實現某個功能,而是如何保證應用在後續的公升級、維護中能夠擁抱變化,維持系統的穩定性,保持系統的可擴充套件性、高內聚、低耦合。
而讓應用系統能夠擁抱變化的方法就是遵循物件導向的六大原則。
原則一:單一職責原則
乙個類中應該是一組相關性很高的函式、資料的封裝,兩個完全不一樣或沒有任何相關性的功能就不應該放在同乙個類中。
原則二:開閉原則
軟體中的物件(類、模組、函式等)對於修改是封閉的、對於擴充套件是開放的。
在軟體的公升級維護過程中,通過修改原有**來實現功能,很容易將錯誤引入已經經過測試的舊**,破壞原有系統。因此,當軟體需要變化時,我們應盡可能的通過擴充套件的方式來實現變化,繼承是擴充套件的途徑之一。使用抽象類是很好的方法,抽象出變化的統一部分,而變化的具體內容由子類去實現。當發生變化時,可通過依賴注入的方式注入依賴類。
原則三:黎克特制替換原則
所有引用基類的地方都能透明的使用其子類的物件,反之不成立。核心原理是抽象。
原則四:依賴倒置原則
模組之間的依賴通過抽象發生,實現類之間不發生直接的依賴關係,其依賴關係是通過介面或抽象類產生。
原則五:介面隔離原則
類間的依賴關係應該建立在最小的介面上。客戶端不應該依賴它不需要的介面。
**例:**我們想要封裝乙個關閉檔案流的方法,省得在**中寫上一長串try…catch和若干個花括號。fileoutputstream實現了closeable介面,關閉檔案流的方法我們只需要呼叫close方法,其他的我們無需知道,例如write方法,所以可封裝乙個方法,該方法傳入乙個可關閉物件,如closeable,再呼叫該物件的close方法將其關閉即可。
原則六:迪公尺特原則
也稱為最少知識原則。乙個物件應該對其他物件有最少的了解,並盡可能減少與自己直接發生關係的物件。
(一)物件導向理解
1.物件導向是什麼?物件導向 oo 將問題中的涉及的事物抽象化,描述事物在問題不同階段的狀態和行為。面向過程 po 將問題的解決步驟分析出後,按步驟依次執行直到得出結果。物件導向則是在你思考完步驟後,找出其中涉及的事物,將步驟中的資料,行為歸結到事物中進行分類,封裝。將面向過程的步驟進行分類歸納,得...
設計模式 物件導向一 物件導向
什麼是物件導向程式設計?物件導向程式設計是一種程式設計正規化和程式設計風格。它以類或物件作為組織 的基本單元,並將封裝 抽象 繼承 多型四個特性,作為 設計和實現的基石 什麼是物件導向程式設計語言?物件導向程式設計語言是支援類或物件的語法機制,並有現成的語法機制,能方便的實現物件導向程式設計四大特性...
python物件導向(一) 物件導向基礎
物件導向是python中乙個重點知識,用物件導向的思想程式設計,有利於模組化 方便閱讀和後期的維護。面向過程 注重解決問題的步驟,讓問題根據步驟流程一步一步得到解決 物件導向 萬物皆物件,每個物件都有特徵和功能,物件間又可以相互作用 類 具有相同特徵或行為的事物的統稱 抽象的,不可直接使用 物件 物...