物件導向設計主要是為了軟體的可維護、可擴充套件、可復用和靈活性好。在面對新的需求和更改的時候可以用最小的代價來達到最好的效果。
在設計模式中對物件導向設計有了更進一步的理解。下面先總結一下物件導向設計的六大原則吧。
開放-封閉原則
在我們設計的時候要盡量保持開放-封閉原則。對於增加需求等情況要盡量擴充套件而不要對類進行修改,避免因為修改而造成不必要的麻煩。開放封閉原則是所有物件導向原則的核心。
單一職責原則
單一職責原則就是乙個類只負責乙個職責,僅有乙個引起它變化的原因。降低類的耦合。
如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化就有可能使軟體的各個方面都收到影響,無疑這樣是非常糟糕的。如果乙個類具有多餘乙個的職責,就應該考慮類的分離。
黎克特制代換原則
乙個軟體實體如果使用的是乙個父類的話,那麼一定使用於其子類,而且它察覺不出父類物件和子類物件的區別。也就是說在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。
也正是因為這個原則,使得繼承復用稱為可能,只有當子類可以替換點父類,軟體單位的功能不受到影響時,父類才能真正的被復用,而子類也能在父類的基礎上增加新的行為。黎克特制代換原則是實現開放封閉原則的具體規範。這是因為實現開放封閉原則關鍵是抽象,而繼承關係又是抽象的一種具體實現。
依賴倒轉原則
依賴倒轉原則即抽象不應該依賴細節,細節應該依賴於抽象。高層模組不應該依賴底層模組,兩個都應該依賴抽象。其實就是要針對抽象進行程式設計,不要對實現進行程式設計。減少耦合。
聚合復用原則
盡量使用合成/聚合,盡量不要使用類繼承。優先使用物件的合成/聚合將有助於你保持每個類被封裝,並被集中在單個任務上。這樣類和類繼承層次會保持較小規模,並且不太可能增長為不可控制的龐然大物。
迪公尺特法則
如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。迪公尺特法則的根本思想是強調了類之間的松耦合。
總的來說這幾個原則都是為了減少耦合,能讓軟體面對需求的時候用最小的代價來獲得最大的改善。程式設計的時候要面向抽象程式設計,而不是依賴於細節。
物件導向 六大原則
舉乙個簡單的例子,登入功能。一般登入需要包括幾個基本的功能 1.登入頁面 2.接受使用者輸入 3.提交使用者輸入資料到服務端驗證 4.返回驗證結果並提示給使用者 按照單一原則我們就可以將登入功能拆分成兩個類,登入頁類和網路請求類。其實因為單一原則並不是很容易劃分,很多時候需要根據個人經驗和實際情況 ...
物件導向六大原則
先來看物件導向的六大原則吧 一 單一職責原則 二 開閉原則 三 黎克特制替換原則 四 依賴倒置原則 五 介面隔離原則 六 迪公尺特原則class imageloader 就像上面的 一樣我們把所有功能寫到乙個類中,隨著我們專案越來越大功能也越來越大,會導致這個類很龐大也很脆弱。這時候可以拆分出來每個...
物件導向六大原則
引用一段經典的話,武學的最高境界是無招勝有招 在程式設計領域,設計模式就可以認為是招數,而真正的內功心法是設計原則 下面講述一下程式設計中應該遵循的基本原則 乙個類只負責一種職責,只有這種職責的改變會導致這個類的變更。繞口一點的正統說法 不要存在多於乙個原因導致類變更 假如 類t 負責有兩種職責 p...