




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Page 1UMLUML及軟件建模及軟件建模主講人主講人 :李 唯Page 2第一章第一章 理解面向?qū)ο罄斫饷嫦驅(qū)ο?n如何理解面向?qū)ο笏季S方式如何理解面向?qū)ο笏季S方式 n一些面向?qū)ο蟮母拍钜恍┟嫦驅(qū)ο蟮母拍頽對象如何與其他對象關(guān)聯(lián)對象如何與其他對象關(guān)聯(lián) Page 3對象(對象(object),無論是具體的還是抽象的,遍布于我們的周圍,它),無論是具體的還是抽象的,遍布于我們的周圍,它們組成了整個世界。程序通常也要模擬現(xiàn)實世界中的對象。們組成了整個世界。程序通常也要模擬現(xiàn)實世界中的對象。首先最重要的,對象是一個類(種類)的實例。例如你和我都是首先最重要的,對象是一個類(種類)的實例。例如你和我
2、都是Person這這個類的實例,那么其中,你和我就是對象,而個類的實例,那么其中,你和我就是對象,而Person則是一個類。對象是則是一個類。對象是系統(tǒng)中用來描述客觀事務(wù)的一個實體,具有自身的結(jié)構(gòu)(系統(tǒng)中用來描述客觀事務(wù)的一個實體,具有自身的結(jié)構(gòu)(Structure),),也就是說,它具有也就是說,它具有屬性屬性(特性特性)和和行為行為。對象的行為包括它所能執(zhí)行的操。對象的行為包括它所能執(zhí)行的操作。屬性和操作合起來被稱為特征。作。屬性和操作合起來被稱為特征。如何理解面向?qū)ο笏季S方式如何理解面向?qū)ο笏季S方式? ?對象只描述客觀事物本質(zhì)的、與系統(tǒng)目標有關(guān)的特征,而不考慮那些非本對象只描述客觀事物本
3、質(zhì)的、與系統(tǒng)目標有關(guān)的特征,而不考慮那些非本質(zhì)的、與系統(tǒng)目標無關(guān)的特征。質(zhì)的、與系統(tǒng)目標無關(guān)的特征。Page 4類(類(ClassClass)是具有相同的屬性和方法的一組對象的集合,它為屬于該類的全)是具有相同的屬性和方法的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)一的對象描述。部對象提供了統(tǒng)一的對象描述。同類對象具有相同的屬性和方法,是指它們的定義形式相同,而不是說每個對象的屬性值同類對象具有相同的屬性和方法,是指它們的定義形式相同,而不是說每個對象的屬性值相同。相同。讓我們再會到洗衣機的例子。如果指定洗衣機類具有讓我們再會到洗衣機的例子。如果指定洗衣機類具有 brandNamebran
4、dNamemodelNamemodelNameserialNameserialName和和capacitycapacity等屬性,還有等屬性,還有acceptClothes()acceptClothes()acceptDetergent()acceptDetergent()turnOnturnOn() ()和和turnoff()turnoff()等操作等操作的話,你就有了制造的話,你就有了制造WashingMachinaWashingMachina類新實例的機制。也就是說,可以基類新實例的機制。也就是說,可以基于洗衣機這個類創(chuàng)建新的對象。于洗衣機這個類創(chuàng)建新的對象。記住面向?qū)ο蟮哪繕耸情_發(fā)出能
5、夠反映現(xiàn)實世界某個特定片段的軟件(或者說記住面向?qū)ο蟮哪繕耸情_發(fā)出能夠反映現(xiàn)實世界某個特定片段的軟件(或者說是是“建模建模”)。你考慮到的屬性和行為越多,你所建立的模型就越符合實際。)。你考慮到的屬性和行為越多,你所建立的模型就越符合實際。在洗衣機的例子中,如果你在洗衣機類中包括在洗衣機的例子中,如果你在洗衣機類中包括drumVolumedrumVolume( (洗滌缸容量洗滌缸容量) )trap(水閥)(水閥)motormotor(馬達)(馬達)motorSpeedmotorSpeed( (馬達轉(zhuǎn)速馬達轉(zhuǎn)速) )等屬性的話,洗等屬性的話,洗衣機模型就更精確。衣機模型就更精確。在面向?qū)ο蟮氖澜?/p>
6、里,類除了起到分類的作用外,類還是用來創(chuàng)建對象的模板在面向?qū)ο蟮氖澜缋?,類除了起到分類的作用外,類還是用來創(chuàng)建對象的模板。如可以把類看成是加工小甜餅的模子,你可以用來壓出新的小甜餅對象。如可以把類看成是加工小甜餅的模子,你可以用來壓出新的小甜餅對象。Page 5一些面向?qū)ο蟮母拍钜恍┟嫦驅(qū)ο蟮母拍蠲嫦驅(qū)ο筮€包含對象的其它方面,這些方面包括面向?qū)ο筮€包含對象的其它方面,這些方面包括抽象(抽象(abstraction)繼承(繼承(inheritance)多態(tài)(多態(tài)(polymorphism)封裝(封裝(encapsulation)其他三種重要面向?qū)ο蟾拍钍瞧渌N重要面向?qū)ο蟾拍钍窍鬟f消息傳遞
7、(message sending)關(guān)聯(lián)(關(guān)聯(lián)(association)聚集(聚集(aggregation)Page 6抽象抽象的意思就是過濾掉對象的一部分特性和操作直到只剩下你所需要的的意思就是過濾掉對象的一部分特性和操作直到只剩下你所需要的屬性和操作。屬性和操作。抽象是人類認識問題的最基本手段之一。抽象是人類認識問題的最基本手段之一。在面向?qū)ο蠓椒ㄖ械某橄螅窃诿嫦驅(qū)ο蠓椒ㄖ械某橄?,是指對具體的問題(對象)進行概括,抽出一類對象的公共性質(zhì)并加以描指對具體的問題(對象)進行概括,抽出一類對象的公共性質(zhì)并加以描述的過程。述的過程。例如你的洗衣機包括什么,不包括什么,在做出這樣的決策后所保留的例如
8、你的洗衣機包括什么,不包括什么,在做出這樣的決策后所保留的部分就是對洗衣機的抽象。部分就是對洗衣機的抽象。一些權(quán)威人士認為抽象對于建模者來說是最重要的技術(shù),也就是說要搞一些權(quán)威人士認為抽象對于建模者來說是最重要的技術(shù),也就是說要搞清楚什么應(yīng)該納入模型中,什么應(yīng)該舍去。清楚什么應(yīng)該納入模型中,什么應(yīng)該舍去。 一般來講,對一個問題的抽象應(yīng)該包括兩個方面:一般來講,對一個問題的抽象應(yīng)該包括兩個方面:1、數(shù)據(jù)抽象:描述某類對象的屬性或狀態(tài),也就是此類對象區(qū)別于彼、數(shù)據(jù)抽象:描述某類對象的屬性或狀態(tài),也就是此類對象區(qū)別于彼類對象的特征。類對象的特征。2、行為抽象、行為抽象(功能抽象):描述的是某類對象的
9、共同行為或功能特征(功能抽象):描述的是某類對象的共同行為或功能特征。抽象(抽象(abstractionabstraction)Page 7繼承繼承 (inheritance)每個消費類電子產(chǎn)品的子類(手機每個消費類電子產(chǎn)品的子類(手機電視機電視機電子詞典等等)都繼承了電子詞典等等)都繼承了消費類電子產(chǎn)品的特征,在面向?qū)ο蟾拍钪?,這種超類消費類電子產(chǎn)品消費類電子產(chǎn)品的特征,在面向?qū)ο蟾拍钪?,這種超類消費類電子產(chǎn)品與其子類的關(guān)系就是繼承。注意每個子類都增加了自己的屬性和操作。與其子類的關(guān)系就是繼承。注意每個子類都增加了自己的屬性和操作。利用繼承,子類可以繼承父類的屬性和方法,在一些文獻里,往往把
10、子利用繼承,子類可以繼承父類的屬性和方法,在一些文獻里,往往把子類類/ /父類稱作特殊類父類稱作特殊類/ /一般類、子類一般類、子類/ /超類、派生類超類、派生類/ /基類?;悺@^承增加了軟件重用的機會,可以降低軟件的開發(fā)和維護費用,而繼承是繼承增加了軟件重用的機會,可以降低軟件的開發(fā)和維護費用,而繼承是OOOO技術(shù)和非技術(shù)和非OOOO技術(shù)的一個很明顯的區(qū)別。技術(shù)的一個很明顯的區(qū)別。利用繼承可以開發(fā)更貼近現(xiàn)實的模型,使得模型更簡潔。利用繼承可以開發(fā)更貼近現(xiàn)實的模型,使得模型更簡潔。繼承的另一個好處是可以保證類之間的一致性,父類可以為所有的子類定繼承的另一個好處是可以保證類之間的一致性,父類可
11、以為所有的子類定制規(guī)則。制規(guī)則。Page 8單繼承和多繼承單繼承和多繼承n單繼承:子類只從一個父類繼承單繼承:子類只從一個父類繼承n多繼承:子類只從一個父類繼承多繼承:子類只從一個父類繼承交通工具交通工具水上交通水上交通工具工具陸地交通陸地交通工具工具水陸兩用交水陸兩用交通工具通工具陸地交通陸地交通工具工具水上交通水上交通工具工具單繼承單繼承多繼承多繼承Page 9多態(tài)性多態(tài)性 (polymorphism)n有時不同的類具有相同名稱的操作。在面向?qū)ο笾?,每個類都能夠自己有時不同的類具有相同名稱的操作。在面向?qū)ο笾?,每個類都能夠自己“知道知道” 如何執(zhí)行自己的打開操作,這就叫做多態(tài)性如何執(zhí)行自己
12、的打開操作,這就叫做多態(tài)性。n在面向在面向?qū)ο蟮氖澜缋?,多態(tài)是對人類思維方式的一種直接模擬,是指一個實體對象的世界里,多態(tài)是對人類思維方式的一種直接模擬,是指一個實體 在不同的上下文條件下具有不同的意義或用法能力。在不同的上下文條件下具有不同的意義或用法能力。例如你可以例如你可以 打開一扇門打開一扇門 打開一扇窗打開一扇窗打開報紙打開報紙打開一件禮物打開一件禮物打開銀行帳號打開銀行帳號甚至打甚至打 開一段對開一段對 話。話。Page 10 封封 裝裝 (encapsulation)封裝:把對象的屬性和方法結(jié)合成一個獨立的系統(tǒng)單位,并盡封裝:把對象的屬性和方法結(jié)合成一個獨立的系統(tǒng)單位,并盡可能地
13、隱藏對象的內(nèi)部細節(jié)??赡艿仉[藏對象的內(nèi)部細節(jié)。當一個對象執(zhí)行自己的操作時,它對外界隱藏了操作的細節(jié)。當一個對象執(zhí)行自己的操作時,它對外界隱藏了操作的細節(jié)。封裝使一個對象形成兩個部分:接口部分和實現(xiàn)部分。對于用封裝使一個對象形成兩個部分:接口部分和實現(xiàn)部分。對于用戶來說,接口部分是可見的,而實現(xiàn)部分是不可見的戶來說,接口部分是可見的,而實現(xiàn)部分是不可見的封裝提供了兩種保護:封裝提供了兩種保護:首先,封裝可以保護對象,防止用戶直接存取對象的內(nèi)部細節(jié);首先,封裝可以保護對象,防止用戶直接存取對象的內(nèi)部細節(jié);其次,封裝也保護了客戶端,防止對象實現(xiàn)部分的變化可能會產(chǎn)其次,封裝也保護了客戶端,防止對象實現(xiàn)
14、部分的變化可能會產(chǎn)生的副作用,即實現(xiàn)部分的改變不會影響到相應(yīng)的客戶端的改變生的副作用,即實現(xiàn)部分的改變不會影響到相應(yīng)的客戶端的改變Page 11消息傳遞消息傳遞(message sending)(message sending)面向?qū)ο蠓椒ǖ囊粋€原則就是通過消息進行對象之間的通信,一個對象發(fā)送一個面向?qū)ο蠓椒ǖ囊粋€原則就是通過消息進行對象之間的通信,一個對象發(fā)送一個操作消息(或請求)給令一個對象,接收消息的對象就執(zhí)行這個操作。操作消息(或請求)給令一個對象,接收消息的對象就執(zhí)行這個操作。消息(消息(Message):就是向?qū)ο蟀l(fā)出的服務(wù)請求,它包括了提供服務(wù)的對象標識):就是向?qū)ο蟀l(fā)出的服務(wù)請
15、求,它包括了提供服務(wù)的對象標識、服務(wù)(方法)標識、輸入信息和回答信息等。、服務(wù)(方法)標識、輸入信息和回答信息等。大家往往把消息等同于函數(shù)調(diào)用,事實上兩者之間存在區(qū)別。消息可以包括同步大家往往把消息等同于函數(shù)調(diào)用,事實上兩者之間存在區(qū)別。消息可以包括同步消息和異步消息,如果消息是異步的,則一個對象發(fā)送消息后,就繼續(xù)自己的活消息和異步消息,如果消息是異步的,則一個對象發(fā)送消息后,就繼續(xù)自己的活動,不等消息接收者返回控制,而函數(shù)調(diào)用往往是同步的,消息的發(fā)送者要等待動,不等消息接收者返回控制,而函數(shù)調(diào)用往往是同步的,消息的發(fā)送者要等待接收者返回值。接收者返回值。Page 12關(guān)聯(lián)(關(guān)聯(lián)( associationassociation )關(guān)聯(lián):對象之間以某種方式發(fā)生聯(lián)系。關(guān)聯(lián):對象之間以某種方式發(fā)生聯(lián)系。多向關(guān)聯(lián)多向關(guān)聯(lián)單向關(guān)聯(lián)單向關(guān)聯(lián)多種方式的關(guān)聯(lián)多種方式的關(guān)聯(lián)一個類和其它的多個類關(guān)聯(lián)一個類和其它的多個類關(guān)聯(lián)多重性(多重性
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住院醫(yī)師病例匯報大賽
- 內(nèi)科咨詢報告總結(jié)
- DBJT 13-119-2010 福建省住宅工程質(zhì)量分戶驗收規(guī)程
- 半年護理工作總結(jié)
- 女士形象禮儀培訓
- 污水泵基礎(chǔ)知識培訓
- 急性胰腺炎病人的護理
- 祭祖活動面試題及答案
- java基礎(chǔ)面試題及答案軟件測試
- 輪胎工藝考試題及答案
- 藍天救援隊隊員入隊申請表
- 施工升降機月檢記錄表
- T-CCIAT 0044-2022 智慧園區(qū)以太全光網(wǎng)絡(luò)建設(shè)技術(shù)規(guī)程
- 廣西基本醫(yī)療保險異地就醫(yī)備案登記表-示例樣表
- 中學生日常行為習慣養(yǎng)成課題計劃2
- 供應(yīng)商綠色環(huán)保環(huán)境管理體系評估表
- GB∕T 11344-2021 無損檢測 超聲測厚
- 《云南省建筑工程資料管理規(guī)程應(yīng)用指南)(上下冊)
- 數(shù)列求和中常見放縮方法和技巧(含答案)
- 寶興縣中藥材生產(chǎn)現(xiàn)狀及發(fā)展思路
- 小兒霧化吸入課件.ppt
評論
0/150
提交評論