面向對象的六大原則

面向對象設計主要是爲了軟件的可維護、可擴展、可複用和靈活性好。在面對新的需求和更改的時候可以用最小的代價來達到最好的效果。

在設計模式中對面向對象設計有了更進一步的理解。下面先總結一下面向對象設計的六大原則吧。


開放-封閉原則

在我們設計的時候要儘量保持開放-封閉原則。對於增加需求等情況要儘量擴展而不要對類進行修改,避免因爲修改而造成不必要的麻煩。開放封閉原則是所有面向對象原則的核心。


單一職責原則

單一職責原則就是一個類只負責一個職責,僅有一個引起它變化的原因。降低類的耦合。

如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個職責的變化就有可能使軟件的各個方面都收到影響,無疑這樣是非常糟糕的。如果一個類具有多餘一個的職責,就應該考慮類的分離。


里氏代換原則

一個軟件實體如果使用的是一個父類的話,那麼一定使用於其子類,而且它察覺不出父類對象和子類對象的區別。也就是說在軟件裏面,把父類都替換成它的子類,程序的行爲沒有變化。

也正是因爲這個原則,使得繼承複用稱爲可能,只有當子類可以替換點父類,軟件單位的功能不受到影響時,父類才能真正的被複用,而子類也能在父類的基礎上增加新的行爲。里氏代換原則是實現開放封閉原則的具體規範。這是因爲實現開放封閉原則關鍵是抽象,而繼承關係又是抽象的一種具體實現。


依賴倒轉原則

依賴倒轉原則即抽象不應該依賴細節,細節應該依賴於抽象。高層模塊不應該依賴底層模塊,兩個都應該依賴抽象。其實就是要針對抽象進行編程,不要對實現進行編程。減少耦合。


聚合複用原則

儘量使用合成/聚合,儘量不要使用類繼承。優先使用對象的合成/聚合將有助於你保持每個類被封裝,並被集中在單個任務上。這樣類和類繼承層次會保持較小規模,並且不太可能增長爲不可控制的龐然大物。


迪米特法則

如果兩個類不必彼此直接通信,那麼這兩個類就不應當發生直接的相互作用。如果其中一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。迪米特法則的根本思想是強調了類之間的鬆耦合。


總的來說這幾個原則都是爲了減少耦合,能讓軟件面對需求的時候用最小的代價來獲得最大的改善。編程的時候要面向抽象編程,而不是依賴於細節。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章