UML面向?qū)ο笕腴T指導(dǎo)
本文和大家重點(diǎn)討論一下UML面向?qū)ο蟮母拍睿嫦驅(qū)ο?quot;什么做什么"與面向過程"做什么"最大的區(qū)別在于,面向?qū)ο蟮闹攸c(diǎn)在于誰發(fā)出了什么命令,而面向過程只關(guān)心一個(gè)命令。
UML面向?qū)ο笾R入門
1、什么是對象
對象(Object)是面向?qū)ο蟮幕緲?gòu)造單元.是一些變量和方法的集合,用于模擬實(shí)現(xiàn)世界中的一些事物模型.如一臺電腦,一個(gè)人,一間房子等.當(dāng)然也可以模擬一些虛擬的東西,比如一個(gè)學(xué)號,一個(gè)編號,一個(gè)院系等.
2、UML面向?qū)ο笈c面向過程的區(qū)別
面向?qū)ο?quot;什么做什么"與面向過程"做什么"最大的區(qū)別在于,面向?qū)ο蟮闹攸c(diǎn)在于誰發(fā)出了什么命令,而面向過程只關(guān)心一個(gè)命令.
面向?qū)ο笠詫ο鬄榛A(chǔ),以事件或消息驅(qū)動(dòng)對象執(zhí)行處理.它不像面向過程設(shè)計(jì)一樣以函數(shù)為單元,在一開始就需要使用一個(gè)主函數(shù),來概適整個(gè)程序,像向?qū)ο笫且圆糠种?去構(gòu)建整個(gè)程序.面向?qū)ο笠詳?shù)據(jù)為中心,使用類作為表現(xiàn)數(shù)據(jù)的載體,面向過程以功能為中心來撈述程序.UML面向?qū)ο蟮某绦蚩刂屏鞒桃允录蛳眚?qū)動(dòng),而面向過程的程序則是以事先預(yù)定的程序來執(zhí)行.所以當(dāng)需求變化很大的時(shí)候,面向過程的程序往往需要重構(gòu)大部分甚至所有代碼,而面向?qū)ο髣t可以輕構(gòu)解決.
3、對象與類
類是對象集合的再抽像,對象是類的實(shí)例.可以用一個(gè)簡單的例子來說明.把中國人當(dāng)成是一個(gè)類,那么你我都是這個(gè)類的一個(gè)實(shí)例.你我等這些中國人的集合抽像成了中國人這個(gè)類.中國人是一個(gè)虛的概念,而你我是一個(gè)實(shí)實(shí)在在的個(gè)體.
4、消息和事件
消息是對象與對象之間相互作用的方式.消息一般包括消息的發(fā)送對象,消息的接收對象,消息的傳遞方式,消息的內(nèi)容,消息的返回五部分組成.
比如張三對李四說:今天我們來喝一杯.
事件是系統(tǒng)預(yù)先定義的,通過指定的條件觸發(fā)的動(dòng)作.
比如我打一下你的頭,你頭痛了.這里我通過"打"這個(gè)行為來傳遞了一個(gè)消息對你產(chǎn)生了作用,你觸法了"痛"這個(gè)事件.
5、UML面向?qū)ο蟮幕咎卣?/strong>
抽象:將要描述的事物進(jìn)行簡化,將事物特征進(jìn)行概括,以事物層次結(jié)構(gòu)來組織模型.
比如:狗.我們在軟件中不可能把狗的所有信息都描述出來,我們把它簡化為有四條腿,一個(gè)頭,一個(gè)尾巴,還有一個(gè)軀桿.這樣我們就像畫畫一樣畫出了一個(gè)抽象的模型圖.然后對它的特征進(jìn)行概括,比如它會(huì)叫,會(huì)吃,會(huì)走.然后狗還分哈巴狗,狼狗等很多種.所以這里又分出了狗的層次.
封裝:將對象的狀態(tài)和行為綁到一起,并且盡可能的隱藏對象的內(nèi)部細(xì)節(jié).
比如:一臺電視機(jī),它的所有特征和內(nèi)部結(jié)構(gòu)都封裝起來,我們不需要知道它的內(nèi)部原理是怎么的,我們只需要知道怎么打開它,怎么換臺就夠了.
繼承:繼承是反映客觀世界中對象的層次關(guān)系.正如上面狗的例子中,我們的狼狗,哈巴狗都繼承自一個(gè)虛擬的狗的概念中.繼承在很大程度上簡化了我們的工作,也清淅的展示出了對象的層次關(guān)系.
多態(tài):多態(tài)是指兩個(gè)或多個(gè)屬于不同類的對象,對于同一個(gè)消息或方法調(diào)用做出不同響應(yīng)的能力..
比如:當(dāng)我們手上拿一個(gè)藍(lán)球的時(shí)候,我們說:走,打球.對方就能清楚的理解我們指的打球是指打藍(lán)球或不是足球,乒乓球。
【編輯推薦】
- 實(shí)例解析UML面向?qū)ο蠹夹g(shù)
- 深入剖析UML面向?qū)ο筌浖_發(fā)過程
- 學(xué)習(xí)筆記 基于UML面向?qū)ο蟮脑O(shè)計(jì)
- 整潔的UML圖如何繪制?
- UML面向?qū)ο蠼VR簡介