面向?qū)ο箝_發(fā)方法_第1頁
面向?qū)ο箝_發(fā)方法_第2頁
面向?qū)ο箝_發(fā)方法_第3頁
面向?qū)ο箝_發(fā)方法_第4頁
面向?qū)ο箝_發(fā)方法_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、梁昌勇梁昌勇信息系統(tǒng)分析、設(shè)計與開發(fā)方法第第3 3章章 面向?qū)ο箝_發(fā)方法面向?qū)ο箝_發(fā)方法2/353.1 3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x 3.2 3.2 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍?3.3 3.3 面向?qū)ο蠓椒ǖ奶攸c面向?qū)ο蠓椒ǖ奶攸c 3.4 3.4 面向?qū)ο蠓椒ǖ膬?yōu)點面向?qū)ο蠓椒ǖ膬?yōu)點3.5 3.5 典型的面向?qū)ο箝_發(fā)方法典型的面向?qū)ο箝_發(fā)方法 目錄目錄3/35 面向?qū)ο蠓椒ǎ嫦驅(qū)ο蠓椒ǎ∣bject Oriented MethodObject Oriented Method)是一種把面向)是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)法過程,指導(dǎo)開發(fā)活動的系統(tǒng)對象的思

2、想應(yīng)用于軟件開發(fā)法過程,指導(dǎo)開發(fā)活動的系統(tǒng)方法,是建立在方法,是建立在“對象對象”概念基礎(chǔ)上的方法學(xué)。概念基礎(chǔ)上的方法學(xué)。 定義一:定義一:面向?qū)ο蠓椒ㄊ且环N運用對象、類、封裝、繼承、面向?qū)ο蠓椒ㄊ且环N運用對象、類、封裝、繼承、多態(tài)和消息等概念來構(gòu)造、測試、重構(gòu)軟件的方法。多態(tài)和消息等概念來構(gòu)造、測試、重構(gòu)軟件的方法。 定義二:定義二: 面向?qū)ο蠓椒ㄊ且哉J(rèn)識論為基礎(chǔ),用對象來理面向?qū)ο蠓椒ㄊ且哉J(rèn)識論為基礎(chǔ),用對象來理解和分析問題空間,并設(shè)計和開發(fā)出由對象構(gòu)成的軟件系解和分析問題空間,并設(shè)計和開發(fā)出由對象構(gòu)成的軟件系統(tǒng)(系統(tǒng)責(zé)任)的方法。統(tǒng)(系統(tǒng)責(zé)任)的方法。 面向?qū)ο蟮姆治鲞^程就是認(rèn)識客觀世界

3、的過程。面向?qū)ο蟮姆治鲞^程就是認(rèn)識客觀世界的過程。3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x4/353.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞xl面向?qū)ο蟊举|(zhì)內(nèi)涵面向?qū)ο蟊举|(zhì)內(nèi)涵u面向?qū)ο蟮乃枷胍詫ο鬄榛A(chǔ),辯證唯物主義以物質(zhì)為基面向?qū)ο蟮乃枷胍詫ο鬄榛A(chǔ),辯證唯物主義以物質(zhì)為基礎(chǔ)。讓我們通過對兩者基本思想的類比來加深對面向?qū)ο蟮A(chǔ)。讓我們通過對兩者基本思想的類比來加深對面向?qū)ο蟊举|(zhì)內(nèi)涵的理解。本質(zhì)內(nèi)涵的理解。u辯證唯物主義認(rèn)為辯證唯物主義認(rèn)為世界是世界是物質(zhì)物質(zhì)的,物質(zhì)是的,物質(zhì)是運動運動的,物質(zhì)是的,物質(zhì)是普遍普遍

4、聯(lián)系聯(lián)系的,物質(zhì)具有的,物質(zhì)具有特殊性特殊性和和普遍性普遍性。物質(zhì)既有。物質(zhì)既有靜態(tài)靜態(tài)的的一面又有一面又有動態(tài)動態(tài)的一面,的一面,外因外因通過通過內(nèi)因內(nèi)因作用于物質(zhì)。作用于物質(zhì)。3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x5/35 面向?qū)ο蟮乃枷朊嫦驅(qū)ο蟮乃枷?問題域是由問題域是由對象對象構(gòu)成的,每個對象擁有各自的構(gòu)成的,每個對象擁有各自的屬性屬性和和方方法法,屬性用于描述對象的物理特征,而方法用于描述對,屬性用于描述對象的物理特征,而方法用于描述對象的行為,象的行為,對象是屬性和行為的統(tǒng)一體對象是屬性和行為的統(tǒng)一體。 從對象出發(fā)構(gòu)造軟件系統(tǒng)。強調(diào)直接以問題域中的對象從對象出發(fā)構(gòu)造軟

5、件系統(tǒng)。強調(diào)直接以問題域中的對象為中心來認(rèn)識問題和解決問題,軟件系統(tǒng)對象是問題域為中心來認(rèn)識問題和解決問題,軟件系統(tǒng)對象是問題域?qū)ο蟮某橄?。對象的抽象?.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x6/35 軟件系統(tǒng)處理的基本單元是軟件系統(tǒng)處理的基本單元是類類,類是具有相同屬性和方,類是具有相同屬性和方法的對象集合。從軟件系統(tǒng)對象到類是一個抽象的過程,法的對象集合。從軟件系統(tǒng)對象到類是一個抽象的過程,符合人們通常的思維方式。符合人們通常的思維方式。 軟件系統(tǒng)中類的實例化對象可以直接映射到問題域中的軟件系統(tǒng)中類的實例化對象可以直接映射

6、到問題域中的對象對象1. 面向?qū)ο蟮谋举|(zhì)內(nèi)涵及基本概念面向?qū)ο蟮谋举|(zhì)內(nèi)涵及基本概念3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x7/351.1 面向?qū)ο蟮谋举|(zhì)內(nèi)涵面向?qū)ο蟮谋举|(zhì)內(nèi)涵(4)1. 面向?qū)ο蟮谋举|(zhì)內(nèi)涵及基本概念面向?qū)ο蟮谋举|(zhì)內(nèi)涵及基本概念問題域?qū)ο笙到y(tǒng)責(zé)任對象對象類抽象抽象抽象抽象軟件系統(tǒng)類的實例化 抽象與實例化抽象與實例化3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x8/35 消息、接口、對象消息、接口、對象1.1 面向?qū)ο蟮谋举|(zhì)內(nèi)涵面向?qū)ο蟮谋举|(zhì)內(nèi)涵(5)1

7、. 面向?qū)ο蟮谋举|(zhì)內(nèi)涵及基本概念面向?qū)ο蟮谋举|(zhì)內(nèi)涵及基本概念接口消 息 方 法 屬 性對 象3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x9/35辯證唯物主義面向?qū)ο笏枷胧澜缡怯晌镔|(zhì)組成的問題域是由對象組成的物質(zhì)是靜止和運動統(tǒng)一體 對象是屬性和行為的統(tǒng)一體物質(zhì)是普遍聯(lián)系對象間相互聯(lián)系一般和特殊父類和子類內(nèi)因和外因消息、接口、對象1. 面向?qū)ο蟮谋举|(zhì)內(nèi)涵及基本概念面向?qū)ο蟮谋举|(zhì)內(nèi)涵及基本概念3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x10/35 面向?qū)ο蠓椒ǖ幕舅枷朊嫦?/p>

8、對象方法的基本思想 盡可能地運用人類的自然思維方式來建立問題空間的模型,構(gòu)造盡可能直觀、自然地表達求解方法的軟件系統(tǒng)?,F(xiàn)實世界的問題是由客觀實體和實體之間的聯(lián)系構(gòu)成的,對象(Object)就是客觀實體的抽象。面向?qū)ο蠓椒▽傩院头椒ǚ旁谝黄?,作為一個相互依存、不可分割的整體來處理。 3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x11/35u面向?qū)ο蠓椒ǖ幕居^點如下:客觀世界是由各種各樣的對象組成的。任何客觀的事物或?qū)嶓w都是對象,每種對象有自己的內(nèi)部狀態(tài)和運動規(guī)律,復(fù)雜的對象可以由簡單的對象組成??梢杂脤ο蠛拖肀硎臼挛锛笆挛镏g

9、的相互聯(lián)系。具有相同的內(nèi)部狀態(tài)和運動規(guī)律的對象可以抽象為一個類(Class),對象是類的一個實例。從一個類可以產(chǎn)生許多對象。類可以派生出子類,子類繼承父類的全部特征,又可以有自己的新特征。類和繼承作為描述人類一般思維方式的范式,繼承可以表達類與類之間的層次關(guān)系。對象之間通過消息傳遞互相聯(lián)系。類具有封裝性,它的狀態(tài)和操作等對于外界是不可見的,外界只能通過消息請求進行某些操作,或請求提供所需的服務(wù)。3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x12/35 特點特點 特點特點1 1:認(rèn)為客觀世界是由各種:認(rèn)為客觀世界是由各種“對象對象”所

10、組成的,任所組成的,任何事物都是對象,每一個對象都有自已的運動規(guī)律和內(nèi)何事物都是對象,每一個對象都有自已的運動規(guī)律和內(nèi)部狀態(tài),每一個對象都屬于某個對象部狀態(tài),每一個對象都屬于某個對象“類類”。復(fù)雜的對。復(fù)雜的對象可以是由相對比較簡單的對象以某種方式而構(gòu)成的。象可以是由相對比較簡單的對象以某種方式而構(gòu)成的。 3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x13/35 特點特點2 2:通過類比,發(fā)現(xiàn)對象間的相似性,即對象間的:通過類比,發(fā)現(xiàn)對象間的相似性,即對象間的共同屬性和行為,這就是構(gòu)成對象類的依據(jù)共同屬性和行為,這就是構(gòu)成對象類的依

11、據(jù) 特點特點3 3:對象間的相互聯(lián)系是通過傳遞:對象間的相互聯(lián)系是通過傳遞“消息消息”來完成來完成的,消息就是通知對象去完成一個允許作用于該對象的的,消息就是通知對象去完成一個允許作用于該對象的操作。操作。面向?qū)ο竺嫦驅(qū)ο?= = 對象對象 + + 類類 + + 繼承繼承 + + 消息消息3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x14/35 方法方法內(nèi)容內(nèi)容面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ńY(jié)構(gòu)化生命周期法結(jié)構(gòu)化生命周期法分析工具分析工具用例圖、類圖、交互圖用例圖、類圖、交互圖、活動圖等、活動圖等 業(yè)務(wù)流程圖、數(shù)據(jù)流圖、業(yè)務(wù)流程圖、數(shù)據(jù)流

12、圖、E-RE-R圖、數(shù)據(jù)字典等圖、數(shù)據(jù)字典等關(guān)注角度關(guān)注角度對象(屬性、行為、結(jié)對象(屬性、行為、結(jié)構(gòu)、連接方式)構(gòu)、連接方式)功能、模塊功能、模塊與數(shù)據(jù)庫關(guān)系與數(shù)據(jù)庫關(guān)系實體類與數(shù)據(jù)庫中表有實體類與數(shù)據(jù)庫中表有對應(yīng)關(guān)系對應(yīng)關(guān)系功能模塊與數(shù)據(jù)庫結(jié)構(gòu)相功能模塊與數(shù)據(jù)庫結(jié)構(gòu)相互獨立,無映射互獨立,無映射問題處理單位問題處理單位類類模塊模塊數(shù)據(jù)處理方式數(shù)據(jù)處理方式通過接口依靠對象自身通過接口依靠對象自身的成員函數(shù)處理的成員函數(shù)處理直接通過函數(shù)處理直接通過函數(shù)處理控制程序方式控制程序方式事件驅(qū)動事件驅(qū)動模塊調(diào)用、控制模塊調(diào)用、控制3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο?/p>

13、方法的基本含義面向?qū)ο蠓椒ǖ幕竞x15/35面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ńY(jié)構(gòu)化方法結(jié)構(gòu)化方法原型法原型法優(yōu)優(yōu)點點1.1.分析、設(shè)計中的對分析、設(shè)計中的對象和軟件中的對象一象和軟件中的對象一致;致;2.2.實現(xiàn)軟件復(fù)用,增實現(xiàn)軟件復(fù)用,增強了系統(tǒng)的適應(yīng)性,強了系統(tǒng)的適應(yīng)性,簡化程序設(shè)計;簡化程序設(shè)計;3.3.系統(tǒng)穩(wěn)定性、可重系統(tǒng)穩(wěn)定性、可重用性及可維護性好;用性及可維護性好;4. 4. 開發(fā)周期短開發(fā)周期短1.1.“自上而下自上而下”地分析地分析和設(shè)計,保證了系統(tǒng)和設(shè)計,保證了系統(tǒng)的整體性和目標(biāo)的一的整體性和目標(biāo)的一致性;致性;2.2.面向用戶,遵循用面向用戶,遵循用戶至上的原則;戶至上的原則;3

14、.3.嚴(yán)格區(qū)分系統(tǒng)開發(fā)嚴(yán)格區(qū)分系統(tǒng)開發(fā)的階段性;每一階段的階段性;每一階段的工作成果是下一階的工作成果是下一階段的依據(jù),便于系統(tǒng)段的依據(jù),便于系統(tǒng)開發(fā)的管理和控制;開發(fā)的管理和控制;4. 4. 按工程標(biāo)準(zhǔn)建立標(biāo)按工程標(biāo)準(zhǔn)建立標(biāo)準(zhǔn)化的文檔資料。準(zhǔn)化的文檔資料。1.1.充分利用最新軟件工具,充分利用最新軟件工具,系統(tǒng)開發(fā)周期短,費用相對系統(tǒng)開發(fā)周期短,費用相對少;少;2.2.用戶參與開發(fā)過程,系統(tǒng)用戶參與開發(fā)過程,系統(tǒng)更加貼近實際,易學(xué)易用,更加貼近實際,易學(xué)易用,減少用戶的培訓(xùn)時間;減少用戶的培訓(xùn)時間;3.3.系統(tǒng)開發(fā)過程循序漸進,系統(tǒng)開發(fā)過程循序漸進,符合人們認(rèn)識事物的規(guī)律,符合人們認(rèn)識事物的

15、規(guī)律,信息反饋及時性強,確保了信息反饋及時性強,確保了較好的用戶滿意度;較好的用戶滿意度;4. 4. 構(gòu)造出用戶構(gòu)造出用戶“看得見,看得見,摸得著摸得著”的系統(tǒng)原型,縮小的系統(tǒng)原型,縮小了理解和認(rèn)識上存在的差距了理解和認(rèn)識上存在的差距。3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x16/35面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ńY(jié)構(gòu)化方法結(jié)構(gòu)化方法原型法原型法缺缺點點1.1.系統(tǒng)在分析階系統(tǒng)在分析階段對對象的抽象段對對象的抽象困難;困難;2.2.需要一定的軟需要一定的軟件基礎(chǔ)支持才能件基礎(chǔ)支持才能應(yīng)用;應(yīng)用;3.3.結(jié)構(gòu)化程度不結(jié)構(gòu)化程度不高高1

16、.1.用戶素質(zhì)、系統(tǒng)分用戶素質(zhì)、系統(tǒng)分析員和管理者之間的析員和管理者之間的溝通要求高;溝通要求高;2.2.開發(fā)周期長,文檔開發(fā)周期長,文檔過多,難于適應(yīng)環(huán)境過多,難于適應(yīng)環(huán)境變化;變化;3.3.結(jié)構(gòu)化程度較低的結(jié)構(gòu)化程度較低的系統(tǒng),在開發(fā)初期難系統(tǒng),在開發(fā)初期難以鎖定功能要求;以鎖定功能要求;4.4.各階段的審批工作各階段的審批工作困難;所使用的工具困難;所使用的工具落后。落后。1.1.不適合大規(guī)模系統(tǒng)開發(fā);不適合大規(guī)模系統(tǒng)開發(fā);2.2.開發(fā)過程管理要求高,要經(jīng)過開發(fā)過程管理要求高,要經(jīng)過“修改修改評價評價再修改再修改”的多次的多次反復(fù);反復(fù);3.3.用戶過早看到系統(tǒng)原型,誤認(rèn)用戶過早看到系統(tǒng)

17、原型,誤認(rèn)為最終系統(tǒng)就是原型模樣,易使為最終系統(tǒng)就是原型模樣,易使用戶失去信心;用戶失去信心;4.4.開發(fā)人員易將原型取代系統(tǒng)分開發(fā)人員易將原型取代系統(tǒng)分析;缺乏規(guī)范化的文檔資料;析;缺乏規(guī)范化的文檔資料;5.5.需要較高的系統(tǒng)開發(fā)環(huán)境支持需要較高的系統(tǒng)開發(fā)環(huán)境支持,如系統(tǒng)開發(fā)工具、軟硬件、開,如系統(tǒng)開發(fā)工具、軟硬件、開發(fā)環(huán)境、開發(fā)人員及用戶素質(zhì)等發(fā)環(huán)境、開發(fā)人員及用戶素質(zhì)等3.1.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x3.1 面向?qū)ο蠓椒ǖ幕竞x面向?qū)ο蠓椒ǖ幕竞x17/35 對象的基本概念對象的基本概念u對象是建立面向?qū)ο笙到y(tǒng)所依賴的基本單元。在現(xiàn)實世界中,可以將任何客觀存在

18、的事物看作一個對象,如一個人、一輛汽車、一張光盤,一臺電腦,甚至一個星球。 現(xiàn)實世界中的對象3.2.1對象的基本概念對象的基本概念3.2 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍?8/35u對象的屬性部分又稱為數(shù)據(jù)部分,用來描述它的某些特征,對象的方法部分又稱為程序部分,通常是一段程序代碼,定義了一個操作,每個操作決定對象的一種功能或行為。 3.2.1 對象的基本概念對象的基本概念3.2 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍钇噷ο蟮膶傩院头椒?9/35 類的基本概念u類是一組具有相同屬性和相同操作的對象的集合。u類看作是對象的模板(Template),抽象地描述了屬于該類的全部對象共有的屬性和方

19、法。類與對象的關(guān)系是抽象與具體的關(guān)系,類是多個對象的綜合抽象對象是類的個體實例。學(xué)生類3.2.2 類的基本概念類的基本概念3.2 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍?0/35 消息傳遞消息傳遞u對象與對象之間并不是彼此孤立的,它們之間存在聯(lián)系,在面向?qū)ο蟮南到y(tǒng)中,對象之間的聯(lián)系是通過消息傳遞進行的。u消息是對象之間相互請求和相互協(xié)作的途徑,是要求某個對象執(zhí)行其中某個功能操作的規(guī)格說明。對象內(nèi)有屬性和方法,外部的對象向該對象提出服務(wù)請求,可以稱為向該對象發(fā)送信息。通過發(fā)送消息實現(xiàn)對對象的操縱。 3.2.3 消息傳遞消息傳遞3.2 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍?1/35 面向?qū)ο蟮姆椒ㄌ?/p>

20、點面向?qū)ο蟮姆椒ㄌ攸c3.3 面向?qū)ο蠓椒ǖ奶攸c面向?qū)ο蠓椒ǖ奶攸c面向?qū)ο蠡咎卣髅嫦驅(qū)ο蠡咎卣骼^承繼承封裝封裝多態(tài)多態(tài)繼承繼承(泛化泛化)組合組合(聚合聚合)覆蓋覆蓋重載重載22/35 抽象抽象u抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。u抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象過程抽象是指任何一個明確定義功能的操作都可被使用者看作單個的實體。 數(shù)據(jù)抽象定義了數(shù)據(jù)類型和施加于該類型對象上的操作,并限定了對象的值只能通過這些操作來訪問和修改。 3.3.1 抽象抽象3.3 面向?qū)ο蠓椒ǖ奶攸c面向?qū)ο蠓椒ǖ奶攸c23/35 封裝封裝u封裝是面向?qū)ο蟮奶?/p>

21、征之一。封裝是面向?qū)ο蟮奶卣髦?。u封裝是指把對象的屬性和方法包圍起來,避免外界的干封裝是指把對象的屬性和方法包圍起來,避免外界的干擾和不確定性,對數(shù)據(jù)的訪問只能通過接口進行。擾和不確定性,對數(shù)據(jù)的訪問只能通過接口進行。u封裝保證模塊具有良好的獨立性,便于系統(tǒng)維護,對系封裝保證模塊具有良好的獨立性,便于系統(tǒng)維護,對系統(tǒng)的修改僅限于類的內(nèi)部。統(tǒng)的修改僅限于類的內(nèi)部。 封裝是繼承的前提,沒有封裝就沒有繼承。封裝是繼承的前提,沒有封裝就沒有繼承。3.3.2 封裝封裝3.3 面向?qū)ο蠓椒ǖ奶攸c面向?qū)ο蠓椒ǖ奶攸c24/35 繼承是面向?qū)ο蟮奶卣髦?。繼承是面向?qū)ο蟮奶卣髦弧?廣義地說,繼承是指能夠直接

22、獲得已有的性質(zhì)和特征,廣義地說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。在面向?qū)ο蟮能浖夹g(shù)中,繼承而不必重復(fù)定義它們。在面向?qū)ο蟮能浖夹g(shù)中,繼承是子類自動地共享基類中已定義的屬性和方法。是子類自動地共享基類中已定義的屬性和方法。 通過繼承創(chuàng)建的新類稱為通過繼承創(chuàng)建的新類稱為“子類子類”或或“派生類派生類”。 被繼承的類稱為被繼承的類稱為“基類基類”、“父類父類”或或“超類超類”。 繼承是多態(tài)的前提,沒有繼承就沒有多態(tài)。繼承是多態(tài)的前提,沒有繼承就沒有多態(tài)。3.3.3 繼承繼承 3.3 面向?qū)ο蠓椒ǖ奶攸c面向?qū)ο蠓椒ǖ奶攸c25/353.3 面向?qū)ο蠓椒ǖ奶攸c面向?qū)ο蠓椒ǖ奶?/p>

23、點類的繼承關(guān)系 3.3.3 繼承繼承 26/35 多態(tài)性是面向?qū)ο蟮奶卣髦弧6鄳B(tài)性是面向?qū)ο蟮奶卣髦弧?多態(tài)是指允許不同類的對象對同一消息作出不同的響應(yīng)。多態(tài)是指允許不同類的對象對同一消息作出不同的響應(yīng)。 實現(xiàn)多態(tài),有二種方式:覆蓋,重載。實現(xiàn)多態(tài),有二種方式:覆蓋,重載。 覆蓋:是指子類重新定義父類的函數(shù);覆蓋:是指子類重新定義父類的函數(shù); 重載:是指允許存在多個同名函數(shù),而這些函數(shù)的參數(shù)表重載:是指允許存在多個同名函數(shù),而這些函數(shù)的參數(shù)表不同(或許參數(shù)個數(shù)不同,或許參數(shù)類型不同,或許兩者不同(或許參數(shù)個數(shù)不同,或許參數(shù)類型不同,或許兩者都不同)。都不同)。4 多態(tài)多態(tài) 3.3 面向?qū)ο?/p>

24、方法的特點面向?qū)ο蠓椒ǖ奶攸c27/35 從認(rèn)知學(xué)的角度來看,面向?qū)ο蠓椒ǚ先藗儗陀^世界的認(rèn)識規(guī)律。 面向?qū)ο蠓椒ㄩ_發(fā)的系統(tǒng)易于維護,其體系結(jié)構(gòu)易于理解、擴充和修改。面向?qū)ο蠓椒ㄩ_發(fā)的軟件系統(tǒng)有對象類組成,對象的封裝性很好地體現(xiàn)了抽象和信息隱蔽的特征。當(dāng)對象的接口確定以后,實現(xiàn)細(xì)節(jié)的修改不會影響其他對象,易于維護。 面向?qū)ο蠓椒ㄖ械睦^承機制有力支持軟件的復(fù)用。在同一應(yīng)用領(lǐng)域的不同應(yīng)用系統(tǒng)中,往往會涉及到許多相同或相似的實體,這些實體在不同的應(yīng)用系統(tǒng)中存在許多相同的屬性和操作,也存在著一些不同的應(yīng)用系統(tǒng)所特有的屬性和操作。可以通過繼承來復(fù)用公共的屬性和操作。3.4 面相對象方法的優(yōu)點面相對象方

25、法的優(yōu)點28/35 OMT方法由James Rambough建立,它采用三種模型來描述分析與設(shè)計,分別是對象模型、動態(tài)模型和功能模型。 對象模型的描述手段是對象圖。它用來刻畫對象的靜態(tài)結(jié)構(gòu)及相互間的關(guān)系。用對象模型來建模就是確定問題域的類和相關(guān)的屬性。 動態(tài)模型主要采用狀態(tài)轉(zhuǎn)換圖(Statecharts)來描述,它用來刻畫對象的動態(tài)行為,并定義和識別對象的行為。 功能模型主要表達系統(tǒng)內(nèi)部數(shù)據(jù)流的傳遞和處理的過程。數(shù)據(jù)流圖適用于描述系統(tǒng)的功能模型。 3.5 典型的面相對象開發(fā)方法典型的面相對象開發(fā)方法3.5.1 OMT 方法面向?qū)ο蠼7椒嫦驅(qū)ο蠼?9/35 Booch最先描述了面向?qū)ο蟮能?/p>

26、件開發(fā)方法的基礎(chǔ)問題,指出面向?qū)ο箝_發(fā)是一種根本不同于傳統(tǒng)的功能分解的設(shè)計方法。 Booch方法在許多領(lǐng)域取得實際應(yīng)用。它的最大特點是將幾類不同的圖表有機結(jié)合起來,以反映系統(tǒng)的各個方面是如何相互聯(lián)系又相互影響的。 Booch方法可分為邏輯設(shè)計和物理設(shè)計 u在邏輯設(shè)計中包括類圖和對象圖,著重于類和對象的定義 u物理設(shè)計部分包括模塊圖和進程圖,著重于對軟件系統(tǒng)的結(jié)構(gòu)描 3.5 典型的面相對象開發(fā)方法典型的面相對象開發(fā)方法3.5.2 Booch 面向?qū)ο蠓椒嫦驅(qū)ο蠓椒?0/35 Booch認(rèn)為軟件開發(fā)是一個螺旋上升的過程,在螺旋上升的每個周期中,有以下幾個步驟: 發(fā)現(xiàn)類和對象。主要包括兩項活動,即

27、在問題域空間內(nèi)發(fā)現(xiàn)最關(guān)鍵的抽象和提出能使對象協(xié)同工作以完成某些功能的機制。對象的類是待選的,隨著認(rèn)識的加深,可以靈活地改變問題空間的邊界。這一步的主要工作就是找出重要的對象和類。 確定類和對象的含義。設(shè)計者以公正的局外人身份從類的界面角度仔細(xì)觀察,反復(fù)討論給出類、對象之間協(xié)作的協(xié)議,可以為每個對象創(chuàng)建場景腳本(Scenario),描述其生存期和具有特征性的行為。 確認(rèn)類和對象之間的關(guān)系。 實現(xiàn)類和對象。3.5 典型的面相對象開發(fā)方法典型的面相對象開發(fā)方法3.5.2 Booch 面向?qū)ο蠓椒嫦驅(qū)ο蠓椒?1/35 Coad-Yourdon方法嚴(yán)格區(qū)分了面向?qū)ο蠓治鯫OA (OO Analysis)與面向?qū)ο笤O(shè)計OOD (OO Design)。 3.5 典型的面相對象開發(fā)方法典型的面相對象開發(fā)方法3.5.3 Coad-Yourdon面向?qū)ο箝_發(fā)方法面向?qū)ο箝_發(fā)方法 32/35 Jacobson提出的面向?qū)ο筌浖こ蹋∣OSE,Object Oriented Software Engineering)將面向?qū)ο蟮乃枷胴灤┑杰浖こ讨?,目的是為了得到一個能適應(yīng)變化、健壯性好和維護性強的系統(tǒng)。OOSE采用五個模型來完成其實現(xiàn)目標(biāo)系統(tǒng)的過程:u需求模型(RM)。用來捕捉用

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論