版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
面向?qū)ο蟮某绦蛟O計第一講面向?qū)ο蟮能浖_發(fā)面向?qū)ο蟮某绦蛟O計第2
頁第一講面向?qū)ο蟮能浖_發(fā)面向?qū)ο蠹夹g的發(fā)展歷史面向?qū)ο蠹夹g的基礎知識面向?qū)ο蟪绦蛟O計的優(yōu)點本章要點面向?qū)ο蟮某绦蛟O計一、面向?qū)ο蠹夹g的發(fā)展歷史面向?qū)ο蟮某绦蛟O計第5
頁1、回顧結(jié)構化方法數(shù)據(jù)抽象、數(shù)據(jù)結(jié)構根據(jù)算法步驟的要求開發(fā),它貫穿于過程,提供過程所要求操作的信息。系統(tǒng)的狀態(tài)是一組全局變量,這組全局變量保存狀態(tài)的值,把它們從一個過程傳送到另一個過程。面向?qū)ο蟮某绦蛟O計第6
頁1、回顧結(jié)構化方法缺點:1)復用困難2)牽一發(fā)而動全身3)為了適應變化,要精心設計函數(shù)接口,導致函數(shù)接口的日益復雜面向?qū)ο蟮某绦蛟O計第7
頁2、面向?qū)ο蠓椒ǖ奶岢雒嫦驅(qū)ο蠓椒ò褑栴}論域中的主要實體做為系統(tǒng)開發(fā)的起點,主要考慮對象的行為而不是必須執(zhí)行的一系列動作。在面向?qū)ο蠓椒ㄖ?,對象是?shù)據(jù)抽象與過程抽象的綜合。系統(tǒng)狀態(tài)保存在各數(shù)據(jù)抽象所定義的數(shù)據(jù)存儲中??刂屏靼诟鱾€數(shù)據(jù)抽象中的操作內(nèi),算法被分布到各種實體中。面向?qū)ο蟮某绦蛟O計第9
頁3、面向?qū)ο蠓椒ǖ幕舅枷氡M可能模擬人類習慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程,也就是使描述問題的問題空間(即問題域)與實現(xiàn)解法的解空間(即求解域)在結(jié)構上盡可能一致。天下烏鴉一般黑歸納演繹面向?qū)ο蟮某绦蛟O計第10
頁人類對客觀事物的認知過程從一般到特殊的演繹過程從特殊到一般的歸納方法3、面向?qū)ο蠓椒ǖ幕舅枷脒\輸工具飛機汽車輪船火車……水果蘋果香蕉梨……抽象面向?qū)ο蟮某绦蛟O計第11
頁3、面向?qū)ο蠓椒ǖ幕舅枷朊嫦驅(qū)ο蠓椒ㄌ峁┝顺橄蠛蜌w納的機制抽象的客觀概念概念:學生抽象的數(shù)據(jù)類型類:學生實例化的對象對象:Jane具體的一組相似客觀事物實體:Jane、Smith等表示抽象實例化模擬面向?qū)ο蟮某绦蛟O計二、面向?qū)ο蠹夹g的基礎知識面向?qū)ο蟮某绦蛟O計第14
頁1、什么是對象?在應用領域中有意義的、與所要解決的問題有關系的任何事物都可以作為對象,它既可以是具體的物理實體的抽象,也可以是人為的概念,或者是任何有明確邊界和意義的東西。例如,一名職工、一家公司、一個窗口、一座圖書館、一本圖書、貸款和借款等,都可以作為一個對象??傊?,對象是對問題域中某個實體的抽象,設立某個對象就反映了軟件系統(tǒng)保存有關它的信息,并具有與它進行交互的能力。面向?qū)ο蟮某绦蛟O計第15
頁1、什么是對象?在不同場合具有不同的含義:問題空間:所有要研究的客觀現(xiàn)實的全體稱為問題空間或問題域,而把要研究的問題(客觀世界中的實體)稱之為問題空間的對象解空間:所有的解(程序及執(zhí)行程序的計算機)組成的集合稱為解空間,把解(程序及執(zhí)行程序的計算機實體)稱做解空間的對象面向?qū)ο蟮某绦蛟O計第17
頁1、什么是對象?對象是封裝了數(shù)據(jù)結(jié)構及可以施加在這些數(shù)據(jù)結(jié)構上的操作的封裝體,這個封裝體有可以唯一標識它的名字,而且向外界提供一組服務。屬性(attribute)表示對象的性質(zhì),屬性值規(guī)定了對象所有可能的狀態(tài),一般只能通過執(zhí)行對象的操作來改變。面向?qū)ο蟮某绦蛟O計第18
頁1、什么是對象?操作是指該對象可以展現(xiàn)的外部服務,它描述了對象執(zhí)行的功能,若通過消息傳遞,還可以為其它對象使用。例如,大型客機可視為對象,它具有位置、速度、顏色、容量等屬性,對于該對象可施行起飛、降落、加速、維修等操作,這些操作將或多或少地改變飛機的屬性值(狀態(tài))。面向?qū)ο蟮某绦蛟O計第19
頁1、什么是對象?對象:電視機Others...InternalStateTurnOnTurnOffChangeChannelAdjustVolumeOthers變更頻道請求開請求關調(diào)節(jié)音量被封裝的行為和狀態(tài)類是建立對象時使用的“樣板”,按照這個樣板所建立的一個個具體的對象,就是類的實例。實例是某個具體類所描述的一個具體對象,如:“張三”、“李四”是類“中國人”的實例。對象既可以是一個具體的對象,也可以泛指一般的對象;而實例只能是一個具體的對象。面向?qū)ο蟮某绦蛟O計第21
頁3、實例的概念面向?qū)ο蟮某绦蛟O計第22
頁類與實例classclassfurniturecosttexturelocationcolorMove()objectchaircost$50texturewoodlocationscantumcolorblackMove()objectattributeabstract面向?qū)ο蟮某绦蛟O計第23
頁4、消息的概念對象之間進行通訊的一種構造叫做消息。當一個消息發(fā)送給某個對象時,包含要求接收對象去執(zhí)行某些活動的信息。接收到消息的對象經(jīng)過解釋,然后予以響應。這種通訊機制叫做消息傳遞。發(fā)送消息的對象不需要知道接收消息的對象如何對請求予以響應。通常一個消息由三部分組成:1)接收消息的對象;面向?qū)ο蟮某绦蛟O計第25
頁5、面向?qū)ο蟮幕咎卣?封裝性在面向?qū)ο蟮某绦蛑?,把?shù)據(jù)和實現(xiàn)操作的代碼集中起來放在對象內(nèi)部。一個對象好像是一個不透明的黑盒子,表示對象狀態(tài)的數(shù)據(jù)和實現(xiàn)操作的代碼與局部數(shù)據(jù)都被封裝在黑盒子里面,從外面是看不見的,更不能從外面直接訪問和修改這些數(shù)據(jù)和代碼。使用對象的時候只需要知道他向外界提供的接口的形式,無須知道它的數(shù)據(jù)結(jié)構細節(jié)和實現(xiàn)操作的算法。面向?qū)ο蟮某绦蛟O計第26
頁5、面向?qū)ο蟮幕咎卣?繼承性廣義地說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復定義它們。在面向?qū)ο蠹夹g中,繼承是子類自動地共享基類中定義的數(shù)據(jù)和方法的機制。繼承性是面向?qū)ο蟪绦蛟O計語言不同于其他語言的最主要的特點!繼承具有傳遞性,如果類C繼承類B,類B繼承類A,則類C繼承類A面向?qū)ο蟮某绦蛟O計第29
頁5、面向?qū)ο蟮幕咎卣?多態(tài)性面向?qū)ο蟮暮诵膬?nèi)容是對象,封裝,繼承,多態(tài)和消息機制,其中多態(tài)就是為了描述現(xiàn)實世界的多樣性的,也是面向?qū)ο笾凶顬橹匾奶匦裕梢赃@么說,不掌握多態(tài),就沒有真正地掌握面向?qū)ο蠹夹g。簡單的說,多態(tài)就是“相同的表達式,不同的操作”,也可以說成是“相同的命令,不同的操作”面向?qū)ο蟮某绦蛟O計第30
頁5、面向?qū)ο蟮幕咎卣?多態(tài)性員工程序員業(yè)務員文管每天上班時間一到,相當于發(fā)了一條這樣的命令:
“員工.開始上班”(同一條表達式)比如在公司中有各種職責不同的員工(程序員,業(yè)務員,文管等),他們“上班”時,做不同的事情(也可以看作是一種業(yè)務邏輯),我們把他們各自的工作都抽象為“上班”,關系如下:面向?qū)ο蟮某绦蛟O計第31
頁6、類與類之間的關系繼承關聯(lián)PersonHouseresidence0..*owner0..*Financial
Institutionclientcreditor0..*0..*Mortgageprincipalrateterm關聯(lián)類{ordered}0..*1BankTrust
Company面向?qū)ο蟮某绦蛟O計第32
頁6、類與類之間的關系類圖是由類及類與類之間的關系組成。我們定義了類以后,就必須識別、描述類與類間的關系。通常,類與類之間的關系具有如下幾種類型1)關聯(lián)2)聚合和組合3)泛化面向?qū)ο蟮某绦蛟O計三、面向?qū)ο蟪绦蛟O計方法的優(yōu)點面向?qū)ο蟮某绦蛟O計第34
頁1、與人類習慣的思維方法一致傳統(tǒng)方法學以算法為核心數(shù)據(jù)和過程相互獨立解空間與問題空間不一致,難于理解面向?qū)ο蠓椒▽W以對象為核心數(shù)據(jù)(靜態(tài)屬性)和過程(動態(tài)行為)封裝在一起解空間模擬客觀世界面向?qū)ο蟮某绦蛟O計第35
頁2、穩(wěn)定性好傳統(tǒng)方法學開發(fā)過程基于功能分析和功能分解軟件結(jié)構依賴于系統(tǒng)所要完成的功能,功能需求發(fā)生變化時引起軟件結(jié)構的整體修改面向?qū)ο蠓椒▽W基于構造問題領域的對象模型功能需求變化時僅需要做局部性的修改由于現(xiàn)實世界中的實體是相對穩(wěn)定的,以對象為中心構造的軟件系統(tǒng)也比較穩(wěn)定面向?qū)ο蟮某绦蛟O計第36
頁3、可重用性好傳統(tǒng)方法學利用標準函數(shù)庫實現(xiàn)軟件重用標準函數(shù)缺乏必要的“柔性”,并不是理想的可重用的軟件成分面向?qū)ο蠓椒▽W利用繼承機制實現(xiàn)重用對象固有的封裝性和信息隱藏機制,具有較強的獨立性,是比較理想的可重用的軟件成分面向?qū)ο蟮某绦蛟O計第37
頁4、可擴展性好適合于在快速原型的軟件開發(fā)方法中使用對模塊化技術更有效的支持面向?qū)ο蟮某绦蛟O計第38
頁5、較易開發(fā)大型軟件產(chǎn)品每個對象就像一個微型程序,具有自己的數(shù)據(jù)、操作、功能和用途把大型軟件產(chǎn)品分解成為一系列本質(zhì)上相互獨立的小產(chǎn)品來處理,降低開發(fā)難度,易于管理面向?qū)ο蟮某绦蛟O計第39
頁6、可維護性好
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 錦州市太和區(qū)社區(qū)《網(wǎng)格員》真題匯編(含答案)
- PICC測試題附答案
- 三基護理管理試題及答案
- 嵐皋縣輔警招聘考試試題庫帶答案
- 本科護理操作題庫及答案
- 高頻c語言面試試題及答案
- 永德縣輔警招聘公安基礎知識考試題庫及答案
- 心理精神科護理試題及參考答案
- 2025年質(zhì)量工程師職業(yè)能力評估試題集(附答案)
- 特殊兒童早期干預自考試卷四真題及答案
- 天津市河東區(qū)2026屆高一上數(shù)學期末考試試題含解析
- 消化內(nèi)鏡ERCP技術改良
- DB37-T6005-2026人為水土流失風險分級評價技術規(guī)范
- 云南師大附中2026屆高三1月高考適應性月考卷英語(六)含答案
- 2026湖北隨州農(nóng)商銀行科技研發(fā)中心第二批人員招聘9人筆試備考試題及答案解析
- 紀念館新館項目可行性研究報告
- 仁愛科普版(2024)八年級上冊英語Unit1~Unit6補全對話練習題(含答案)
- 騎行美食活動方案策劃(3篇)
- 石化企業(yè)環(huán)保培訓課件
- 2026年呂梁職業(yè)技術學院單招職業(yè)技能考試備考試題帶答案解析
- 2025年新疆師范大學輔導員招聘考試真題及答案
評論
0/150
提交評論