定義:就乙個類而言,應該僅有乙個引起它變化的原因。
如果乙個承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類的其他職責的 能力,這種耦合會導致脆弱的設計,當變化發生時,設計會招到意想不到的破壞。軟體設計真正要做的就是發現職責並把那些職責相互分離。
定義:軟體實體(類、模組、函式等)應該對於擴充套件開放,對於修改封閉。
設計軟體要容易維護且不容易出問題的最好方法就是多擴充套件少開放。開閉原則是物件導向設計的核心,使得程式可維護、可擴充套件、可復用、靈活性好。
定義:概括來說,我們要針對介面程式設計,不要針對實現程式設計,程式中的依賴關係應該終止於抽象類或者介面。依賴倒轉原則是物件導向的標誌。
定義:子型別必須能夠替換父型別。
定義:客戶端不應該依賴它所不需要的介面;類間的依賴關係應該建立在最小的介面上。
介面隔離原則將非常龐大、臃腫的介面拆分成更小的和更具體的介面,這樣客戶將會只需要知道他們感興趣的方法。介面隔離原則的目的是系統解開耦合,從而容易重構、更改和重新部署。
定義:如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可通過第三者**這個呼叫。
乙個物件應該對其他物件有最少的了解。迪公尺特原則強調的是類之間的松耦合,類之間的耦合越弱越利於復用,乙個處在若耦合的類被修改,不會對有關係的類造成波及。該原則也體現了物件導向的封裝特性,在類的結構設計上,每乙個類都應當盡量降低成員的訪問許可權。
【總結】物件導向的三大特性(封裝、繼承、多型)和物件導向的設計原則是相互體現驗證的,而23種設計模式是六大設計原則的應用。
待續
物件導向 六大原則
舉乙個簡單的例子,登入功能。一般登入需要包括幾個基本的功能 1.登入頁面 2.接受使用者輸入 3.提交使用者輸入資料到服務端驗證 4.返回驗證結果並提示給使用者 按照單一原則我們就可以將登入功能拆分成兩個類,登入頁類和網路請求類。其實因為單一原則並不是很容易劃分,很多時候需要根據個人經驗和實際情況 ...
物件導向六大原則
先來看物件導向的六大原則吧 一 單一職責原則 二 開閉原則 三 黎克特制替換原則 四 依賴倒置原則 五 介面隔離原則 六 迪公尺特原則class imageloader 就像上面的 一樣我們把所有功能寫到乙個類中,隨著我們專案越來越大功能也越來越大,會導致這個類很龐大也很脆弱。這時候可以拆分出來每個...
物件導向六大原則
引用一段經典的話,武學的最高境界是無招勝有招 在程式設計領域,設計模式就可以認為是招數,而真正的內功心法是設計原則 下面講述一下程式設計中應該遵循的基本原則 乙個類只負責一種職責,只有這種職責的改變會導致這個類的變更。繞口一點的正統說法 不要存在多於乙個原因導致類變更 假如 類t 負責有兩種職責 p...