物件導向設計模式總結一

2021-07-08 22:23:08 字數 1279 閱讀 2697

物件導向設計的優點

物件導向設計的優點:可維護、可擴充套件、可復用、靈活性好。

目標

物件導向設計的目標:高內聚,低耦合。

設計模式分類

物件導向常見的23種設計模式主要分為:建立型、結構型和行為型。

物件導向設計原則

1. 單一職責原則:

就乙個類而言,應該僅有乙個引起它變化的原因。

1.1 如果你能夠想到多於乙個動機去改變乙個類,那麼這個類就具有多於乙個的職責,就應該考慮類的職責分離。

2.開放-封閉原則:

軟體實體(類,模組,函式等)應該可以擴充套件,但是不可修改。

2.1 無論模組是多麼的『封閉』,都會存在一些無法對之封閉的變化,既然不可能完全封閉,設計人員必須對於他設計的模組

應該對哪種變化封閉做出選擇。他必須先猜測出最有可能發生的變化種類,然後構造抽象來隔離那些變化。

2.2 面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**。

3.依賴倒轉原則:

高層模組不應該依賴低層模組。兩個都應該依賴抽象。

抽象不應該依賴細節,細節應該依賴抽象。

3.1 針對介面程式設計,不要對實現程式設計。

4.黎克特制代換原則:

子型別必須能夠替換掉它們的父型別。

4.1 乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它察覺不出父類物件和子類物件的區別。

也就是說,在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。

5.迪公尺特法則:(最少知識原則)

如果兩個類不必彼此直接通訊,那麼這兩個類就不應該發生直接的相互作用。

如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。

5.1 在類的結構設計上,每乙個類都應當盡量降低成員的訪問許可權。

5.2 類之間的耦合越弱,越有利於復用,乙個處在弱耦合的類被修改,不會對有關係的類造成涉及。

6.合成/聚合復用原則:

盡量使用合成/聚合,盡量不要使用類繼承。

6.1 聚合表示一種弱的擁有關係,體現的是a物件可以包含b物件,但b物件不是a物件的一部分

6.2 合成則是一種強的擁有關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一樣。

6.3 優先使用物件的合成/聚合將有助於你保持每個類被封裝,並被集中在單個任務上。這樣類和類繼承層次會保持較小規模,

並且不太可能增長為不可控制的龐然大物。

物件導向設計模式總結

從去年7月份開始學習設計模式一直到今年3月底,4月初,共8個多月,想把自己明白的總結下來,也希望給初學的朋友們一點點東西。記得去年9月份時一位it大佬問我設計模式你用過哪些,我說好像都很少用 其實是自己不懂 如果我現在再回答問題就會是基本都在用,其實在一些前輩的程式裡,即使他們沒有學習設計模式,也會...

設計模式 物件導向一 物件導向

什麼是物件導向程式設計?物件導向程式設計是一種程式設計正規化和程式設計風格。它以類或物件作為組織 的基本單元,並將封裝 抽象 繼承 多型四個特性,作為 設計和實現的基石 什麼是物件導向程式設計語言?物件導向程式設計語言是支援類或物件的語法機制,並有現成的語法機制,能方便的實現物件導向程式設計四大特性...

物件導向設計模式學習(一) 物件導向設計模式與原則

1。軟體設計模式是一些常見問題的一般解決案。2。物件導向設計模式是在物件導向開發中描述物件之間資訊通訊的組織關係。3。面象物件的三個特點 封裝 內部實現的隱藏 繼承 實現 復用 多型 改寫物件的行為 4。實現封裝,繼承,多型並不代表就是乙個面象物件模式設計,是面象物件模式的設計才導致了封裝,繼承,多...