2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、面向?qū)ο笤O(shè)計六大原則 面向?qū)ο笤O(shè)計六大原則面向?qū)ο笤O(shè)計的原則是面向?qū)ο笏枷氲奶釤挘让嫦驅(qū)ο笏枷氲暮诵囊馗呖刹僮餍?,但與設(shè)計模式相比,卻又更加的抽象,是設(shè)計精神要義的抽象概括。形象地將,面向?qū)ο笏枷胂穹ɡ淼木瘢O(shè)計原則則相對于基本憲法,而設(shè)計模式就好比各式各樣的具體法律條文了。面向?qū)ο笤O(shè)計原則有 6 個:開放封閉原則,單一職責(zé)原則,依賴倒置原則,Liskov 替換原則,迪米特法則和接口隔離原則或合成/聚合復(fù)用原則(不同資料略有不

2、同,這里對 7個都做了整理) 。1 單一職責(zé)原則 單一職責(zé)原則(Single Responsibility Principle SRP)There should never be more than one reason for a class to change. 什么意思呢?所謂單一職責(zé)原則就是一個類只負(fù)責(zé)一個職責(zé),只有一個引起變化的原因。如果一個類承擔(dān)的職責(zé)過多,就等于把這些職責(zé)耦合在一起,一個職責(zé)的變化會削弱或抑制這個類完成其他

3、職責(zé)的能力,這個耦合會導(dǎo)致脆弱的設(shè)計。軟件設(shè)計真正要做的許多內(nèi)容,就是發(fā)現(xiàn)職責(zé)并把這些職責(zé)相互分離;如果能夠想到多于一個動機去改變一個類,那么這個類就具有多于一個職責(zé),就應(yīng)該考慮類的分離。以調(diào)制解調(diào)器為例如下圖:ModemAttributesOperations+ Dial()+ Hangup()+ Receive()+ Send()從上述類圖里面我們發(fā)現(xiàn)有四個方法 Dial(撥通電話),Hangup(掛電話),Receive(收到信息

4、),Send(發(fā)送信息),經(jīng)過分析不難判斷出,實際上 Dial(撥通電話)和 Hangup(掛電話)是屬于連接的范疇,而 Receive(收到信息)和 Send(發(fā)送信息)是屬于數(shù)據(jù)傳送的范疇。這里類包括兩個職責(zé),顯然違反了 SRP。這樣做有潛在的隱患,如果要改變連接的方式,勢必要修改 Modem,而修改 Modem類的結(jié)果導(dǎo)致凡事依賴 Modem 類可能都需要修改,這樣就需要重新編譯和部署,不管數(shù)據(jù)傳輸這部分是否需要修改。因此要重構(gòu)

5、Modem 類,從中抽象出兩個接口,一個專門負(fù)責(zé)連接,另一個專門負(fù)責(zé)數(shù)據(jù)傳送。依賴 Modem 類的元素要做相應(yīng)的細化,根據(jù)職責(zé)的不同分別依賴不同的接口。如下圖:槍的主要職責(zé)是射擊,如何射擊在各個具體的子類中定義。注意在類中調(diào)用其他類時務(wù)必調(diào)用父類或接口,如果不能掉話父類或接口,說明類的射擊已經(jīng)違反了 LSP 原則。如果我們有一個玩具手 槍,該如何定義呢?我們先在類圖 2-1 上增加一個類ToyGun,然后繼承于 AbstractGu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論