第10章面向?qū)ο蟮姆椒?/STRONG>
面向?qū)ο蟮姆椒ㄊ墙窈筌浖_發(fā)方法的主流。學習本章,最好是學過面向?qū)ο蟪绦蛟O(shè)計語言,這樣可以對對象、類、類的層次結(jié)構(gòu)、方法、消息等概念更容易理解。本章總的要求是,掌握面向?qū)ο蟮幕舅枷搿⒒靖拍、基本原理,掌握三種模型的基本概念和構(gòu)造方法,掌握面向?qū)ο蟮姆治、設(shè)計和實現(xiàn)的過程。
一、面向?qū)ο蟮幕靖拍?/STRONG>
1、什么面向?qū)ο?首先了解幾個概念:
1、對象:對象是人們要進行研究的任何事物。具體一點講就是研究對象。它可以是有形實體,也可以是作用、事件、性能說明等,當然,如果女朋友成為你研究的對象時,對象也可以是你的女朋友。
2、對象的狀態(tài)和行為:對象有自身的狀態(tài),比如你的女朋友有她的姓名(叫小麗)、年齡(22歲)、工作單位等。對象還有操作,用于改變對象的狀態(tài),對象及其操作就是對象的行為,比如"小麗.跳槽到(某公司)"這個行為將使她的工作單位這個狀態(tài)發(fā)生變化。
3、類:具有相同或相似性質(zhì)的對象的抽象就是類。如桃樹、李樹、樟樹等是具體的樹,抽象之后得到"樹"這個類。類具有屬性,屬性是狀態(tài)的抽象,如一棵李樹的高度是3米,樟樹是10米,樹則抽象出一個屬性"高度"。類具有操作,它是對象行為的抽象。
4、類的結(jié)構(gòu):有兩種,一種是"一般-具體"結(jié)構(gòu),如植物、樹都是類,它們之間是抽象到具體的關(guān)系,即樹是一種(is a)植物。還有一種就是"整體-部分"結(jié)構(gòu),如計算機是類、CPU也是類,則計算機與CPU之間就是整體與部分的關(guān)系。
5、消息和方法:對象之間進行通信的構(gòu)造叫做消息,比如小麗是一個對象,上司發(fā)出一個消息:小麗.出差到(深圳)。這樣,相應(yīng)的對象接收到這個消息就會給予響應(yīng),在這個消息中,小麗是對象名,出差到就是方法名,深圳就是參數(shù)。在類中操作的實現(xiàn)過程叫做方法。上面的出差到(某地)這個方法如何實現(xiàn)呢,就是買車票,乘車到某地。這個過程就是方法。
總之,面向?qū)ο筮@種思想很符合人們觀察世界的自然思想。在很多時候我們可以用自然的觀點去理解面向?qū)ο蟆?/P>
2、面向?qū)ο蟮奶卣饔兴狞c:對象唯一性、分類性、繼承性和多態(tài)性。
3、面向?qū)ο蟮囊兀撼橄、封裝性、共享性
4、面向?qū)ο蠹夹g(shù)強調(diào)的是對象結(jié)構(gòu)而不是程序結(jié)構(gòu)。
5、面向?qū)ο蟮拈_發(fā)方法主要有以下幾種:Coad方法、Booch方法、OMT方法和OOSE方法,最新的統(tǒng)一建模語言UML則不僅統(tǒng)一了Booch方法,OMT方法、OOSE方法,而且對其作了進一上的發(fā)展,最終統(tǒng)一為大眾所接受的標準建模語言。
二、面向?qū)ο蟮哪P?簡單應(yīng)用)
面向?qū)ο蟮哪P桶ㄈ齻,它們分別是:描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對象模型、描述系統(tǒng)控制結(jié)構(gòu)的動態(tài)模型和和描述系統(tǒng)功能的功能模型。這三種模型都涉及到數(shù)據(jù)、控制和操作等共同的概念,只是每種模型描述的側(cè)重點不同。這三種模型從三個不同但又密切相關(guān)的角度模擬目標系統(tǒng),它們各自從不同的側(cè)面反映了系統(tǒng)的實質(zhì)性內(nèi)容,綜合起來則全面反映了對目標系統(tǒng)的需求。
1、對象模型:它表示了靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)數(shù)據(jù)性質(zhì),描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),它是從客觀世界實體的對象關(guān)系角度來描述,表現(xiàn)了對象的相互關(guān)系。該模型主要關(guān)系的是系統(tǒng)中對象的結(jié)構(gòu)、屬性和操作,使用了對象圖的工具來刻畫,它是分析階段三個模型的核心,也是其他兩個模型的框架。涉及及的概念有,對象和類、關(guān)聯(lián)和鏈。
2、動態(tài)模型:是與時間和變化有關(guān)的系統(tǒng)性質(zhì)。該模型描述了系統(tǒng)的控制結(jié)構(gòu),它表示了瞬時的、行為化的系統(tǒng)控制性質(zhì),它關(guān)系的是系統(tǒng)的控制,操作的執(zhí)行順序,它從對象的事件和狀態(tài)的角度出發(fā),表現(xiàn)了對象的相互行為。該模型描述的系統(tǒng)屬性是觸發(fā)事件,事件序列、狀態(tài)、事件與狀態(tài)的組織。使用狀態(tài)圖作為描述工具。涉及的重要概念是事件、狀態(tài)、操作等。
3、功能模型:描述了系統(tǒng)的所有計算。功能模型指出發(fā)生了什么,動態(tài)模型確定什么時候發(fā)生,而對象模型確定發(fā)生的客體。功能模型表明一個計算如何從輸入值得到輸出值,它不考慮所計算的次序。功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖說明數(shù)據(jù)流是如何從外部輸入、經(jīng)過操作和內(nèi)部存儲輸出到外部的。功能模型也包括對象模型中值的約束條件。功能模型說明對象模型中操作的含義、動態(tài)模型中動作的意義以及對象模型中約束的意義。相關(guān)的概念有:數(shù)據(jù)流圖中的處理、數(shù)據(jù)流、動作對象、數(shù)據(jù)存儲對象等。
三、面向?qū)ο蟮姆治?簡單應(yīng)用)
面向?qū)ο蠓治龅哪康氖菍陀^世界的系統(tǒng)進行建模。分析問題有三種用途:用來明確問題需求;為用戶和開發(fā)人員提供明確需求;為用戶和開發(fā)人員提供一個協(xié)商的基礎(chǔ),作為后繼的設(shè)計和實現(xiàn)的框架。通過分析,建立對象模型、動態(tài)模型和功能模型。
四、面向?qū)ο蟮脑O(shè)計(領(lǐng)會)
1、面向?qū)ο笤O(shè)計的準則:
(1)模塊化:對象就是模塊,它是把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起所構(gòu)成的模塊。
(2)抽象:包括過程抽象、數(shù)據(jù)抽象、規(guī)格說明抽象及參數(shù)化抽象等。
(3)信息隱蔽:在面向?qū)ο蠓椒ㄖ校畔㈦[蔽通過對象的封裝性來實現(xiàn)。
(4)低耦合:低耦合是設(shè)計的一個重要標準,應(yīng)該避免對象之間的高耦合,強調(diào)對象間的低耦合。
(5)高內(nèi)聚:在面向?qū)ο笤O(shè)計中存在三種內(nèi)聚:操作內(nèi)聚、類內(nèi)聚及一般-具體內(nèi)聚,緊密的繼承耦合與高度的一般--具體內(nèi)聚是一致的。
2、面向?qū)ο笤O(shè)計的啟發(fā)規(guī)則:
(1)設(shè)計結(jié)果應(yīng)該清晰易懂
(2)一般--具體結(jié)構(gòu)的深度應(yīng)適當
(3)設(shè)計簡單的類
(4)使用簡單的協(xié)議
(5)使用簡單的操作
(6)把設(shè)計變動減至最小
五、面向?qū)ο蟮膶崿F(xiàn)(領(lǐng)會)
面向?qū)ο髮崿F(xiàn)主要包括兩項工作,把面向?qū)ο笤O(shè)計結(jié)果翻譯成用某種程序設(shè)計語言寫成的面向?qū)ο蟪绦?測試并調(diào)試面向?qū)ο蟪绦颉?/P>
在開發(fā)過程,類的實現(xiàn)是核心問題。在用面向?qū)ο箫L格所寫的系統(tǒng)中,所有的數(shù)據(jù)都被封裝在類的實例中,而整個程序則被封裝在一個更高級的類中。
相關(guān)推薦:2010年下半年軟考試題及答案解析匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |