第二章 OO大原則

2022-03-21 02:35:12 字數 1513 閱讀 4236

昨天忙了一天,晚上加班到了12點,雖然工作有時候比較累,但是整體來講還是比較輕鬆的,國企加上我是今年才畢業的應屆生,導致了現在這種情況。工資也真的不算高...但我覺得最開始還是要踏踏實實一點比較好。學習才是王道嘛,技術好了,功底紮實了,工資自然應該不是問題。今天看的是第二章,oo大原則,這一章可能主要涉及到一些設計模式的基本原則和設計模式,因為這畢竟是軟體開發人員的必修課,是成為乙個好的軟體開發人員的開始,之前完完整整的看了一遍《大話設計模式》,確實寫的不錯,如果沒看過設計模式的可以拿他作為起步嘛,只有起步了,才會有進步。再強調一下,設計模式真的很重要,我們攜手共進步吧!

設計模式就像是武術招式,你可以無招勝有招,但是那畢竟是巧合或者已經達到了出神入化的境地,還有一種則是研習前輩們的招式,在適當的時候用了適當的招式,這就是高手。前輩們研究出了「設計模式」這一套高招,我們可以按照相應的招式,書寫出美妙高效的**。而其中的原則,則是這門武功的內功心法,兄弟們,好好練習吧。

1、原則:

2、單一職責原則(srp):介面卡模式就是單一職責的完美呈現,當其中乙個類有兩個職責,運算元據庫和判斷許可權的時候,我們就可以將判斷許可權的職責單獨放到介面卡類裡面,從而通過其進行訪問資料,這樣的實現就體現了單一職責原則。同樣,外觀模式(facade)也同樣體現這個原則。

3、單一職責是由引起變化的原因決定,而不是由功能職責覺得,雖然職責常常是引起變化的原因,但有時卻未必,應該審時度勢。當有乙個變化能引起多個職責發生改變的時候,就該考慮把這些職責放到乙個類中統一管理,所以,避免相同的職責被分散到多個類中,和避免乙個類擁有過多的職責一樣重要。

3、開放封閉原則(ocp):對擴充套件開放,意味著有新的需求的時候,可以對現有**進行擴充套件,以適應新的情況。對修改封閉,意味著一旦設計完成,就可以獨立的完成其工作,而不要對類進行任何修改。

4、實現開放封閉的核心思想就是對抽象程式設計,而不是對具體程式設計。通過繼承和多型機制,覆寫其方法以達到擴充套件的目的。實現它的具體模式包括模板方法模式(template)和策略模式(strategy)。

5、依賴倒置原則(dip):著名的好萊塢法則:不要呼叫我們,我們會呼叫你,是對依賴倒置原則最形象的詮釋。核心思想就是依賴於抽象。

(1)高層模組不應該依賴於低層模組,二者都應該依賴於抽象。

(2)抽象不應該依賴於具體,具體應該依賴於抽象。

6、抽象的穩定性決定了系統的穩定性,因為抽象是保持不變的,依賴於抽象是物件導向的精髓,也是依賴倒轉原則的核心思想。

7、介面隔離原則(isp):在實際程式設計當中,「胖」介面會要求繼承她的類必須實現她的所有方法,但有些對於類是沒有必要,所以為了避免這種情況,就有了介面隔離原則。

8、分離介面的兩種方式:

(1)委託分離,通過增加乙個新的型別來委託客戶的請求,隔離使用者和介面之間的的直接依賴,但是會增加系統開銷。

(2)多重繼承分離,通過介面多繼承來實現客戶需求,這種方式值得推薦。

9、liskov替換原則(lsp):核心思想就是子類必須能夠替換其基類。子類繼承父類,其關係是is-a的確定的,在.net語言中以is為關鍵字判斷兩個物件是否相容。

10、從客戶程式的預期來保證子類和父類在行為上的相容,是liskov原則的另一關鍵。

OO設計五大原則

oo的五大原則是指srp ocp lsp dip isp 1.srp single responsibility principle 單一職責原則 單一職責很容易理解,所謂單一職責,就是乙個設計元素只做一件事。srp 原則的核心含義是只能讓乙個類有且只有乙個職責,永遠不要讓乙個類存在多個改變的理由。...

OO的五大原則

oo的五大原則是指srp ocp lsp dip isp 1.srp single responsibility principle 單一職責原則 單一職責很容易理解,所謂單一職責,就是乙個設計元素只做一件事。2.ocp open close principle 開閉原則 一句話 closed fo...

第二章 物件導向設計原則

一 如何衡量軟體設計的質量 內聚度 表示乙個應用程式的單個單元所負責的任務數量和多樣性。內聚與單個類或者單個方法單元相關。好的軟體設計應該做到高內聚。耦合度 耦合度表示類之間關係的緊密程度。低耦合是指盡量使用抽象耦合,少用具體耦合。設計原則名稱設計原則簡介重要性 單一職責原則 的職責要單一,不能將太...