




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第二十講教程結(jié)束語第一頁,共二十七頁,編輯于2023年,星期一OOAD理論總結(jié)與思索第二頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系3軟件開發(fā)的最重要思維方式軟件開發(fā)的最重要思維方式是什么?抽象!軟件=對象+對象之間的關(guān)系結(jié)構(gòu)化編程時代
程序=數(shù)據(jù)結(jié)構(gòu)+算法面向?qū)ο筌浖r代,軟件=?第三頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系4組件化時代的軟件設(shè)計什么是軟件組件?注意:區(qū)分ROSE中的組件與軟件理論領(lǐng)域中的組件可以復(fù)用的,具備一定功能的類的組合。單個類不夠資格成為軟件組件!軟件組件可以以源代碼方式存在,也可以以二進(jìn)制形式存在第四頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系5組件化時代的軟件設(shè)計OOD設(shè)計師制定組件的規(guī)范,高級程序員實(shí)現(xiàn)這些可復(fù)用的組件現(xiàn)代軟件開發(fā)已成為組裝已有組件的過程,最典型的例子是Java與.net類庫第五頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系6設(shè)計模式大型系統(tǒng)中良好的設(shè)計是關(guān)鍵為開發(fā)面向?qū)ο蟮能浖峁┮粋€架構(gòu)減少了軟件設(shè)計的復(fù)雜度為軟件設(shè)計方案的重用提供了可能性可以避免犯一些常規(guī)性的錯誤使設(shè)計獨(dú)立于語言建立了一套軟件架構(gòu)設(shè)計師的“通用語言”在軟件開發(fā)周期中縮短了設(shè)計周期設(shè)計模式(Designpatterns)第六頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系7使用設(shè)計模式熟悉模式才能知道如何使用模式用模式的最好方法就是設(shè)計時忘掉所有的模式名,只從實(shí)踐出發(fā)尋找可行的方案,必要時才去翻模式書以獲得靈感。我們用UML來描述模式,ROSE是畫圖工具第七頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系8設(shè)計模式經(jīng)典書籍四個老外權(quán)威:Gamma,Helm,JohnsonandVlissides“GangofFour”——四人幫DesignPatterns,ElementsofReusableObject-OrientedSoftware(AddisonWesley:1995)提出23種設(shè)計模式創(chuàng)建型設(shè)計模式:解決如何創(chuàng)建對象的問題結(jié)構(gòu)型設(shè)計模式:解決類和對象間的結(jié)構(gòu)關(guān)系問題行為型設(shè)計模式:解決對象間的動態(tài)關(guān)系問題第八頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系9參考資料第九頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系10參考資料第十頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系11關(guān)于設(shè)計模式設(shè)計模式運(yùn)用時,心中要無模式;關(guān)鍵在于把握其思想。應(yīng)仔細(xì)研究成熟的設(shè)計模式,將其活學(xué)活用模式不是數(shù)學(xué)公式!第十一頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系12結(jié)構(gòu)化編程與面向?qū)ο缶幊堂嫦驅(qū)ο蟮年P(guān)鍵是抽象面向?qū)ο蠓治鲈O(shè)計的成功實(shí)施要求更高,難度更大: 在理解對象基本理論和開發(fā)技術(shù)的前提下,加上豐富的程序開發(fā)實(shí)踐,才行。結(jié)構(gòu)化與面向?qū)ο蠓椒☉?yīng)該相輔相成,在合適的地方用合適的方法。第十二頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系13結(jié)構(gòu)化編程與面向?qū)ο缶幊淘陬惖膬?nèi)部代碼實(shí)現(xiàn)上采用結(jié)構(gòu)化編程的方式: 比如:將一個太長的函數(shù)按功能分解為若干個小函數(shù),做為類的私有函數(shù)只有在調(diào)試代碼清除BUG中,才發(fā)覺OO的妙處和軟件工程理論的無比正確! 最重要的是兩點(diǎn): (1)代碼隔離; (2)控制模塊規(guī)模;第十三頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系14對象的存儲對象的存儲不應(yīng)直接與數(shù)據(jù)庫打交道對象的管理通常都設(shè)計控制類采用STL容器進(jìn)行管理從數(shù)據(jù)庫記錄集生成對象,然后把對象放入STL容器中,是一個很好的設(shè)計方案數(shù)據(jù)庫表的一對多關(guān)聯(lián),表現(xiàn)為對象之間的組合,多對多關(guān)聯(lián)如何處理?請思索!第十四頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系15對象與關(guān)系數(shù)據(jù)庫對象實(shí)例的數(shù)據(jù)保存在數(shù)據(jù)庫表中,一般一條記錄對應(yīng)一個對象實(shí)例,盡量避免一個對象實(shí)例的數(shù)據(jù)分布在不同的表中,這樣就加大了移植的難度;對象與數(shù)據(jù)庫之間的關(guān)系問題是OOD與OOP必須解決的問題之一。第十五頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系16數(shù)據(jù)庫表關(guān)聯(lián)與對象的對應(yīng)表的一對一關(guān)聯(lián)可直接映射到對象間的一對一關(guān)聯(lián)第十六頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系17數(shù)據(jù)庫表關(guān)聯(lián)與對象的對應(yīng)一對多關(guān)聯(lián)第十七頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系18數(shù)據(jù)庫表關(guān)聯(lián)與對象的對應(yīng)多對多關(guān)聯(lián)需拆成兩個一對多的關(guān)聯(lián)第十八頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系19分而治之的設(shè)計方法“分而治之”是一個基本的方法,簡單地說,就是將一個復(fù)雜的系統(tǒng)劃分為幾個子系統(tǒng),然后,分別處理這些子系統(tǒng),最后再合成一個完整的系統(tǒng)。這是西方科學(xué)的主要思維方法之一:重視局部與細(xì)節(jié),用放大鏡去研究大象。第十九頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系20橫向與縱向可以利用多態(tài)、模板等機(jī)制簡化設(shè)計繼承是縱向的設(shè)計方案,STL是橫向的解決方案,繼承可以復(fù)用代碼,模板可以減少類的數(shù)量,相互配合才是良好的設(shè)計?;诮M件的“搭積木”過程可以看成是將橫向與縱向設(shè)計相結(jié)合的典范第二十頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系21OOD的指導(dǎo)原則為特定問題產(chǎn)生一個class,然后讓它在解決其他問題時,漸漸成長而成熟;設(shè)計Class及其接口,是OOD的主要任務(wù);開始寫程序,讓一部分先動起來,以驗(yàn)證設(shè)計,或找出難點(diǎn)所在;保持類的小而簡潔,功能明確——《ThinkinginJava》p82第二十一頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系22OOAD的哲學(xué)方法論真學(xué)問把復(fù)雜的問題弄得簡單,它的目的是讓你能夠理解;偽學(xué)問把簡單的問題弄得復(fù)雜,它的目的是讓你感到神秘。不做就學(xué)不到第二十二頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系23OOAD的哲學(xué)方法論一切都要從實(shí)際出發(fā),不迷信老外的一切,相信自己的直覺。采用“拿來主義”現(xiàn)在的OOD,大多是在采用已有的系統(tǒng)架構(gòu)基礎(chǔ)上修修補(bǔ)補(bǔ),以達(dá)到最大限度地利用現(xiàn)有資源的目的。所以,OOD不是獨(dú)立于語言與開發(fā)工具的。不存在界限分明的OOD階段,事實(shí)上,OOD是與編碼交織在一起的,沒有編碼作基礎(chǔ),無法進(jìn)行OOD,不進(jìn)行編碼實(shí)踐,就無法改進(jìn)OOD第二十三頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系24OOAD的哲學(xué)方法論不管白貓黑貓,逮著老鼠就是好貓。書本上理論上介紹了許多有用的理論,但一切都要從實(shí)際出發(fā),OO不是萬試靈丹。第二十四頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系25現(xiàn)實(shí)的約束:從實(shí)際角度出發(fā),OO到底是省事還是費(fèi)事?請拍拍大腦問問自己,我該怎樣做?用自己的大腦思索,不要用別人的大腦思索!第二十五頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系26結(jié)束語計算機(jī)技術(shù)發(fā)展日新月異,實(shí)踐在不斷地提出新問題,這是一個永無止境的過程。 大家有沒有自己的想法?探索一個別人還不熟悉的領(lǐng)域,把國外先進(jìn)的東西與中國的具體實(shí)踐結(jié)合起來……
提高中國軟件產(chǎn)業(yè)的技術(shù)水平,是我們的責(zé)任!第二十六頁,共二十七頁,編輯于2023年,星期一北京理工大學(xué)計算機(jī)系27結(jié)束語感謝大家聽完了C++課程,其實(shí)這門課程的
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年志遠(yuǎn)小學(xué)考試題及答案
- 2025年河北pcr考試題及答案2022
- 2025年單招各科模擬試題及答案
- 2025年工程數(shù)學(xué)段考試題及答案
- 2025年遼寧省理綜合試題及答案
- 2025年長方形測試題及答案
- 考驗(yàn)大家眼力測試題及答案
- 2025年文德英語面試試題及答案
- 2025年拆遷專員考試試題及答案
- 2025年眼鏡美學(xué)題考試題及答案
- 2025年四川省對口招生(旅游類)考試復(fù)習(xí)題(附答案)
- 私募股權(quán)投資基金基礎(chǔ)知識-《私募股權(quán)投資基金基礎(chǔ)知識》高分通關(guān)卷5
- 校園春季傳染病預(yù)防
- 醫(yī)院危險化學(xué)品安全管理
- 2024年勞動合同(30篇)
- 燃?xì)夤景踩a(chǎn)實(shí)施方案
- 2024年安全員理論考試題庫附答案解析
- 【非洲出海專題】2024年摩洛哥投資環(huán)境深度分析及中資 企業(yè)在摩洛哥投資合作策略
- 原生廣告行業(yè)可行性分析報告
- 新聞記者職業(yè)資格《新聞基礎(chǔ)知識》考試題庫(含答案)
- 《鐵路軌道維護(hù)》課件-道岔改道作業(yè)
評論
0/150
提交評論