天天看點

設計模式 —— 六大原則

1、開閉原則(Open Close Principle)

開閉原則就是說對擴充開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的代碼,實作一個熱插拔的效果。是以一句話概括就是:為了使程式的擴充性好,易于維護和更新。想要達到這樣的效果,我們需要使用接口和抽象類,後面的具體設計中我們會提到這點。

2、裡氏代換原則(Liskov Substitution Principle)

裡氏代換原則(Liskov Substitution Principle LSP)面向對象設計的基本原則之一。 裡氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。 LSP是繼承複用的基石,隻有當衍生類可以替換掉基類,軟體機關的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行為。裡氏代換原則是對“開-閉”原則的補充。實作“開-閉”原則的關鍵步驟就是抽象化。而基類與子類的繼承關系就是抽象化的具體實作,是以裡氏代換原則是對實作抽象化的具體步驟的規範。

3、依賴倒轉原則(Dependence Inversion Principle)

這個是開閉原則的基礎,具體内容:真對接口程式設計,依賴于抽象而不依賴于具體。

4、接口隔離原則(Interface Segregation Principle)

這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。還是一個降低類之間的耦合度的意思,從這兒我們看出,其實設計模式就是一個軟體的設計思想,從大型軟體架構出發,為了更新和維護友善。是以上文中多次出現:降低依賴,降低耦合。

5、迪米特法則(最少知道原則)(Demeter Principle)

為什麼叫最少知道原則,就是說:一個實體應當盡量少的與其他實體之間發生互相作用,使得系統功能子產品相對獨立。

6、合成複用原則(Composite Reuse Principle)

原則是盡量使用合成/聚合的方式,而不是使用繼承。

注:1.合成表示一種強的擁有關系,展現了嚴格的部分和整體的關系,部分和整體的生命周期一樣,打個比方:人有兩個胳膊,胳膊和人就是部分和整體的關系,人去世了,那麼胳膊也就沒用了,也就是說胳膊和人的生命周期是相同的。 合成關系用實心的菱形+實線來表示。2.聚合表示一種弱的擁有關系,展現的是A對象可以包含B對象,但是B對象并不是A對象的一部分,打個比方:人是群居動物,是以每個人屬于一個人群,一個人群可以有多個人,是以人群和人是聚合的關系。 聚合關系用空心的菱形+實線來表示。3.對象的繼承關系在編譯時就定義好了,是以無法在運作時改變從父類繼承的子類的實作。 子類的實作和它的父類有非常緊密的依賴關系,以至于父類實作中的任何變化必然會導緻子類發生變化。 當你複用子類的時候,如果繼承下來的實作不适合解決新的問題,則父類必須重寫或者被其它更适合的類所替換。這種依賴關系限制了靈活性,并最終限制了複用性。

設計模式 —— 六大原則

繼續閱讀