面向?qū)ο蟪绦蛟O(shè)計_第1頁
面向?qū)ο蟪绦蛟O(shè)計_第2頁
面向?qū)ο蟪绦蛟O(shè)計_第3頁
面向?qū)ο蟪绦蛟O(shè)計_第4頁
面向?qū)ο蟪绦蛟O(shè)計_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟪绦蛟O(shè)計第1頁,課件共41頁,創(chuàng)作于2023年2月第一章面向?qū)ο蟪绦蛟O(shè)計主要內(nèi)容1.1面向?qū)ο蟪绦蛟O(shè)計概述1.2面向?qū)ο蟮幕靖拍?.3面向?qū)ο笙到y(tǒng)的特點1.4面向?qū)ο蟮拈_發(fā)方法第2頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述1.1.1面向?qū)ο笏枷爰皟?nèi)涵在程序開發(fā)和應用領(lǐng)域,特別是大型系統(tǒng)的開發(fā)和使用,軟件開發(fā)人員一直受到兩大問題的困擾:一是如何克服系統(tǒng)復雜性的障礙;二是如何在計算機系統(tǒng)中自然的表示客觀世界,即對象模型。系統(tǒng)的復雜性主要體現(xiàn)在以下3個方面:第3頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述由于系統(tǒng)分析人員、系統(tǒng)設(shè)計人員和程序?qū)嵤┤藛T之間所采用的語言符號、表述方式等的不同,使他們之間不能很好地直接溝通,系統(tǒng)分析人員和程序設(shè)計人員的計劃和說明不能被實施人員正確理解,實施人員對系統(tǒng)分析的意見不能及時反饋到系統(tǒng)分析人員和程序設(shè)計人員那里,這就為系統(tǒng)的順利實施帶來了很大的障礙。第4頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述在程序的實施過程中,由于大型系統(tǒng)必須由多人合作完成,各人或各小組完成程序中的一個或幾個模塊,如何劃分任務、估計和分配資源、掌握每個程序員的進度等就構(gòu)成了進行大型系統(tǒng)設(shè)計時管理的復雜性,另外,即使每個人或小組所設(shè)計的模塊都無可挑剔,但將這些模塊整合在一起時未必不會出現(xiàn)問題,因此如何權(quán)衡模塊內(nèi)聚度和模塊間的耦合度,也是編程人員必須面對的問題之一。第5頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述大型程序具有大量的系統(tǒng)狀態(tài),系統(tǒng)的運行就是各種系統(tǒng)狀態(tài)之間的轉(zhuǎn)換,而兩個系統(tǒng)狀態(tài)之間還存在許多的中間狀態(tài)。如何正確的處理這些系統(tǒng)狀態(tài)以及中間狀態(tài)、組織高效的系統(tǒng)程序邏輯和驗證系統(tǒng)的正確性都是非常困難的。第6頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述 面向?qū)ο蟮乃枷刖褪牵喝绾卧谟嬎銠C系統(tǒng)中對現(xiàn)實世界進行直接模擬,將日常事務中的處理方法和流程直接移植到計算機系統(tǒng)中去。 面向?qū)ο笫擒浖绦蛟O(shè)計中的一種新思想,由于這種新思想的引入,使我們的程序設(shè)計能更貼近現(xiàn)實,使系統(tǒng)設(shè)計、分析和實施等過程有一種統(tǒng)一的符號和語言,從而使系統(tǒng)分析人員、系統(tǒng)設(shè)計人員、實施人員之間能夠更順利地溝通。另一方面,面向?qū)ο笏枷肽軌蛱峁└咝У拇a共享機制,從而使軟件重用獲得生機。基于上述原因,面向?qū)ο笏枷胍褳槿藗兯邮埽⒊蔀槌绦蛟O(shè)計思想的主流。第7頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述

簡單的說,通過使用面向?qū)ο蟮姆椒梢园岩唤M看似相互之間毫無聯(lián)系的對象有效地集成在一起,這些對象都包含代表各自特征的數(shù)據(jù)以及對數(shù)據(jù)的操作即對象的行為。通過面向?qū)ο蠓椒?,可以把與該對象相關(guān)的數(shù)據(jù)和操作封裝在一個相對獨立的實體中,該實體有自己的功能和特征,它也可以采用某種機制與外界交互。 面向?qū)ο蠹夹g(shù)追求的是軟件系統(tǒng)對現(xiàn)實世界近似的或直接的模擬,它盡可能實現(xiàn)將現(xiàn)實世界中的事物直接映射到軟件系統(tǒng)的解空間。它希望用最小的力氣,最大限度地利用軟件系統(tǒng)來解決現(xiàn)實世界中的問題。第8頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述1.1.2面向?qū)ο蟪绦蛟O(shè)計

面向?qū)ο蟪绦蛟O(shè)計(OOP)是通過為數(shù)據(jù)和代碼建立分塊內(nèi)存區(qū)域的方法來對程序進行模塊化設(shè)計的一種程序設(shè)計方法,這些模塊可以被作為樣板,在需要時建立其副本。 面向?qū)ο蟪绦蛟O(shè)計方法利用面向?qū)ο笏枷脒M行軟件系統(tǒng)的設(shè)計和實現(xiàn)。這種新的方法是在利用面向?qū)ο笏枷氲幕A(chǔ)上,通過增加軟件的可擴充性和可重用性,來改善并提高程序員的生產(chǎn)能力,并能控制軟件的復雜性和軟件維護的開銷。在使用面向?qū)ο蟪绦蛟O(shè)計方法時,軟件開發(fā)的分析和設(shè)計階段能更加緊密地與實施階段相聯(lián)系。第9頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述 面向?qū)ο笤O(shè)計方法追求的是現(xiàn)實問題空間與軟件系統(tǒng)解空間的近似和直接模擬。它希望用戶用最小的力氣,最大限度地利用軟件系統(tǒng)進行求解。 在具體學習OOP之前,請先注意一下兩點:OOP是一種軟件設(shè)計和實現(xiàn)的思想。盡管支持OOP的語言將使實現(xiàn)面向?qū)ο蟪绦蛟O(shè)計變得容易,但是OOP和程序設(shè)計語言無關(guān)。第10頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述 面向?qū)ο蟮脑O(shè)計方法基于信息隱藏和抽象數(shù)據(jù)類型的概念。它把系統(tǒng)中的所有資源,如數(shù)據(jù)、模塊以及系統(tǒng)都看成對象,每個對象把一個數(shù)據(jù)類型和一組過程封裝在一起,使得這組過程負責這種數(shù)據(jù)類型的處理,并在定義對象時可以規(guī)定外界在其上運行的權(quán)限??梢院唵蔚剡@樣認為: 面向?qū)ο螅綌?shù)據(jù)抽象+信息隱藏+繼承性+多態(tài)性第11頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述 面向?qū)ο蟪绦蛟O(shè)計方法之所以被廣泛采用,是因為它具有許多優(yōu)良的特性。模塊性。對象是一個功能和數(shù)據(jù)獨立的單元,相互之間只能通過對象認可的途徑進行通信,相互沒有預料不到的影響,也可以較為自由地為各個不同的軟件系統(tǒng)所用。封裝功能。為信息隱藏提供了具體的實現(xiàn)手段,用戶不必清楚對象的內(nèi)部細節(jié),只要了解其功能描述即可使用。第12頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述代碼共享。繼承提供了一種代碼共享的手段,可以避免重復的代碼設(shè)計,使得面向?qū)ο蟮姆椒ù_實有效。靈活性。對象的功能執(zhí)行是在消息傳遞時確定的,支持對象的主體特征,使得對象可以根據(jù)自身的特點進行功能實現(xiàn),提高了程序設(shè)計的靈活性。易維護性。對象實現(xiàn)了抽象和封裝,使其中可能出現(xiàn)的錯誤限制在自身,不會向外傳播,易于檢測和修改。增量型設(shè)計。面向?qū)ο笙到y(tǒng)可以通過繼承機制不斷擴充功能,而不影響原有軟件的運行。第13頁,課件共41頁,創(chuàng)作于2023年2月1.1面向?qū)ο蟪绦蛟O(shè)計概述1.1.3面向?qū)ο蟪绦蛟O(shè)計語言

面向?qū)ο蟪绦蛟O(shè)計語言的主要優(yōu)點在于它提供了一種面向?qū)ο蟪绦蜻\行所需要的環(huán)境。這種環(huán)境最主要的特征就是以對象作為程序的主要單位,它將數(shù)據(jù)及對這些數(shù)據(jù)的操作功能以及與其他對象的通信的能力都封裝在了一起。 目前使用的最多面向?qū)ο蟪绦蛟O(shè)計語言主要有Java、C++、C#等。本教材主要通過C#來介紹面向?qū)ο蟪绦蛟O(shè)計的相關(guān)方法和技術(shù)。第14頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.1對象

對象是面向?qū)ο笏枷氲暮诵母拍?,它是?gòu)成面向?qū)ο笙到y(tǒng)的基礎(chǔ)。要掌握面向?qū)ο笏枷耄紫缺仨毮軌蛘_地認識和理解對象的概念。 從廣義上講,對象就是人們所關(guān)心的事物,它是系統(tǒng)所針對的問題域中的人、地點、事物等概念的抽象。對象存在于現(xiàn)實世界里,是人們對現(xiàn)實世界的理解和抽象,它可能是任何類型系統(tǒng)的一部分。 比如,對于一個學校的學籍管理系統(tǒng),教師、學生、課程等都可以納入對象的范疇。在比如,組成一臺電腦的所有配件都是對象。第15頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.1對象

在面向?qū)ο罄碚擉w系中,面向?qū)ο蠓椒▽W將對象定義為:對象是一個邏輯實體,它是一組信息以及作用于這些信息的操作的描述。也就是說,對象是將其自身所固有的狀態(tài)特征或?qū)傩耘c可以對這些狀態(tài)施加的操作結(jié)合在一起所構(gòu)成的獨立實體。 面向?qū)ο笙到y(tǒng)中的對象通常與現(xiàn)實世界中的實體相對應,它具有如下特性:有一個名字作為對象在系統(tǒng)中的標識,不同對象有不同的名字,對對象的引用也是通過其名字進行的。第16頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.1對象有一組描述它的特征的狀態(tài),這些狀態(tài)可以由一個或多個屬性構(gòu)成,同類型的對象具有同類型的狀態(tài),它們主要是通過這些狀態(tài)的不同來區(qū)別的。有一組操作,每個操作決定對象的一種功能或行為,它體現(xiàn)了對象存在的意義,也是對象之間交互的手段。對象的操作可以分為兩類:一類是自身所承受的操作,這類操作只能供對象內(nèi)部使用;另一類是施加于其他對象的操作,通過這類操作,對象就可以與其他對象進行交互了。第17頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.1對象

在用面向?qū)ο蟮姆椒ㄟM行軟件開發(fā)時,根據(jù)開發(fā)過程的不同,可將對象分為三種不同的類型的對象:現(xiàn)實對象,即現(xiàn)實生活中存在的實體,是我們所模擬系統(tǒng)的原始構(gòu)成;問題對象是對象在問題中的抽象,它是現(xiàn)實對象在計算機解空間中的直接映射;計算機對象是問題對象在計算機中的表示,即問題對象的計算機實現(xiàn)?,F(xiàn)實對象通過抽象變成問題對象,最后用計算機將它們表示出來。這三種對象的關(guān)系如圖1.1所示。第18頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.1對象

圖1.1三種對象之間的關(guān)系現(xiàn)實對象問題對象計算機對象抽象表示第19頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.1對象

一個對象之所以區(qū)別于其他對象,就是因為它與別的對象相比有不同的狀態(tài),另外,系統(tǒng)的功能是通過服務和信息的傳遞來改變某些對象的狀態(tài)實現(xiàn)的。因此,對象本身應該具有一定的狀態(tài)、并具有保持和記憶這些狀態(tài)的功能。對象的狀態(tài)是由其屬性決定的,因此,對象的屬性的選取應該遵循的最基本的原則是:要能反映對象的基本特征,它是對象真正需要記憶的特征或數(shù)據(jù),這些特征或數(shù)據(jù)能反映對象的基本性質(zhì)。通過這些特征能夠?qū)⒃搶ο髤^(qū)別于其他對象。比如對“人”這個對象,可以選擇如下一些屬性:姓名、身高、性別、體重等。第20頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.1對象

從對象屬性的來源可以把屬性劃分為四類:描述性屬性:用于描述對象特征的屬性,屬性值隨對象的產(chǎn)生而產(chǎn)生,并隨著對象的改變而改變。定義性屬性:是將一個對象區(qū)別于同類型其他對象的屬性,不同的定義性屬性值可能產(chǎn)生不同的對象。綜合可得屬性:為了某種目的將其他屬性通過某種關(guān)系整合在一起而形成的屬性。這類屬性并不能單獨存在,它的屬性值是由其他屬性值決定的。第21頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.1對象偶爾可得屬性:在一定的條件下,這類屬性可以由其他屬性決定,此時屬性值可以由其他數(shù)據(jù)獲得。與綜合可得屬性相比,這類屬性具有一定的獨立性。 現(xiàn)實世界的各種事物都是相互聯(lián)系的,只有這樣才能構(gòu)成一個有機的整體。與此相對應,在面向?qū)ο笙到y(tǒng)中,為了達到某種目的或?qū)崿F(xiàn)某些功能,通常由多個對象共同協(xié)作完成,因此要求對象之間也必須能夠交互,這種交互通常是通過消息進行的。對象與外部對象的每一個交互都稱為對象的一個行為。對象的行為包括對象向別的對象發(fā)送消息以及該對象接收別的對象發(fā)送的消息。第22頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.1對象 消息是對象之間相互請求或相互協(xié)作的途徑,是要求某個對象執(zhí)行其中某個功能操作的規(guī)格的說明。 對象的一個重要特征表現(xiàn)在它的私有存儲單元只能由它自己的操作進行處理,消息是外界能夠引用對象操作及獲得對象狀態(tài)的惟一方式。這個特征確保了對象的實現(xiàn)只依賴于它本身的狀態(tài)和所能接受的消息,而不依賴于其他對象的內(nèi)部細節(jié)。 對象的行為可以分為內(nèi)部行為和外部行為,相應地消息也可以分為私有消息和公有消息。私有消息只能在對象內(nèi)部傳遞,這類消息不對外發(fā)送,它主要用于對象內(nèi)部的數(shù)據(jù)處理。公有消息是向別的對象發(fā)送的消息,它是對象與外界交互的主要途徑。任何對象都必須有公有消息,否則該對象就無法與外界聯(lián)系,因此就沒有存在的價值。第23頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.2類

類是具有共同特點的一組對象的抽象,它提取該組對象的共同屬性和操作,從抽象層次描述這組對象。類是構(gòu)成某些對象系統(tǒng)的最基本的單位,是面向?qū)ο笙到y(tǒng)中最基本的概念之一。 類是創(chuàng)建對象的模板,以操作、表示和算法的形式完整地定義了一組對象的行為,因此,類可以被認為是一種用戶定義的數(shù)據(jù)類型,它完整地描述了規(guī)范說明和實現(xiàn)。類的內(nèi)涵由類模板給出,而外延是該類的有關(guān)對象。通過類可以產(chǎn)生同類型的其他對象,對象可以看成是類的具體實例。類是抽象的概念,而對象是類的一個具體實例。通過類可以顯示出每個對象所具有的相同結(jié)構(gòu)和行為。同一個類的對象之間有兩類不同:一是每個對象具有不同的句柄;二是任何特定時刻,每個對象可能有不同的狀態(tài)。第24頁,課件共41頁,創(chuàng)作于2023年2月1.2面向?qū)ο蟮幕靖拍?.2.2類

可以作為面向?qū)ο笙到y(tǒng)的具有特定功能的一個模塊,可以作為模塊劃分的一種手段和依據(jù)。類還是代碼共享的手段。在類中提供了一種代碼共享機制,即繼承,通過繼承,派生類可以直接共享基類的屬性和操作。第25頁,課件共41頁,創(chuàng)作于2023年2月1.3面向?qū)ο笙到y(tǒng)的特點1.3.1封裝性

封裝是一個通用的術(shù)語,主要指那些現(xiàn)實數(shù)據(jù)抽象的技術(shù)。因此,封裝的概念隱含著提供支持模塊化和信息隱藏的機制。這樣,在支持封裝的技術(shù)和數(shù)據(jù)抽象原理之間存在著一一對應的關(guān)系。 在程序設(shè)計中,封裝是指將一組數(shù)據(jù)和與這些數(shù)據(jù)有關(guān)的操作放在一起,形成一個能動的實體,即對象。用戶不必知道對象行為的實現(xiàn)細節(jié),只需根據(jù)對象提供的外部接口訪問對象。因此從用戶的角度來看,這些對象的行為就像包含在一個“黑匣子”里,是隱藏的、看不見的。第26頁,課件共41頁,創(chuàng)作于2023年2月1.3面向?qū)ο笙到y(tǒng)的特點1.3.1封裝性

封裝將系統(tǒng)中的一個可識別的實體中的各種特性聚集在一個邏輯單元即對象中,而且,對象的訪問被限制在一個嚴格定義的接口上。封裝是一種通過定義嚴格的外部接口在單獨編寫的模塊之間減少相互依賴的技術(shù)。一個模塊的外部接口在模塊和它的用戶之間起著契約的作用。一個模塊可以被重新實現(xiàn),只要新的實現(xiàn)支持相同的外部接口,這種改變就不會影響它的用戶,因此就可以控制這種改變產(chǎn)生的后果。

第27頁,課件共41頁,創(chuàng)作于2023年2月1.3面向?qū)ο笙到y(tǒng)的特點1.3.1封裝性

一個對象要具有封裝性,應該具有如下幾個條件:具有一個清楚的邊界,對象的所有私有數(shù)據(jù)、內(nèi)部程序的細節(jié)都被固定在這個邊界內(nèi)。具有一個接口,這個接口描述了對象之間的請求和響應等相互操作,它是公有消息的集合。對象內(nèi)部的實現(xiàn)和實現(xiàn)代碼受到封裝殼的保護,其他對象不能直接修改本對象所擁有的數(shù)據(jù)和代碼。第28頁,課件共41頁,創(chuàng)作于2023年2月1.3面向?qū)ο笙到y(tǒng)的特點1.3.1封裝性

面向?qū)ο笙到y(tǒng)的封裝性是一種信息隱藏技術(shù),它使系統(tǒng)設(shè)計員能夠清楚地表明他們所提供的服務界面,用戶只能看到對象所提供的服務,而看不到其中的數(shù)據(jù)和代碼細節(jié)。因此,從用戶的角度來看,對象提供了一組服務,而服務的具體實現(xiàn)卻被隱藏了。 面向?qū)ο笙到y(tǒng)中的封裝單位為對象,該對象的特性是由它所屬類的說明來描述的。除了對象的封裝之外,類概念本身也具有一種封裝的意義,它將數(shù)據(jù)和與數(shù)據(jù)有關(guān)的操作集合封裝在了一起,建立了良好的接口,且反映了抽象數(shù)據(jù)類型的思想。第29頁,課件共41頁,創(chuàng)作于2023年2月1.3面向?qū)ο笙到y(tǒng)的特點1.3.2繼承性

繼承是一個對象可以獲得另一個對象的特性的機制,它支持層次分類的概念。 繼承在自然界中廣泛存在,比如子女繼承了父母的某些特性。在面向?qū)ο笙到y(tǒng)中,把被繼承的類稱為父類或基類,把通過繼承得到的類稱為子類或派生類。子類也可以被別的類所繼承。 繼承可以分為單繼承和多繼承。若一個類只有一個父類,則稱為單繼承。當一個類有多個父類時,則稱為多繼承。第30頁,課件共41頁,創(chuàng)作于2023年2月1.3面向?qū)ο笙到y(tǒng)的特點1.3.2繼承性

子類繼承父類有兩個方面的內(nèi)容:其一是結(jié)構(gòu)方面的繼承;其二是操作方面的繼承。 繼承是面向?qū)ο蟪绦蛟O(shè)計語言的主要特點之一,采用繼承的語言可以帶來如下好處:通過類的繼承關(guān)系,使公共的特征能夠共享,提高了軟件的重用性。第31頁,課件共41頁,創(chuàng)作于2023年2月1.3面向?qū)ο笙到y(tǒng)的特點1.3.2繼承性首先進行共同特征的設(shè)計和驗證,然后自頂向下來開發(fā)子類,逐步加入新的內(nèi)容,這符合逐步求精的軟件工程原則。便于實現(xiàn)多態(tài)性。便于系統(tǒng)的擴展。類層次是分類和信息組織的有效方法,它反映了現(xiàn)實世界中普遍存在的一般和特殊的關(guān)系,也反映了人類認識世界的演繹方法。第32頁,課件共41頁,創(chuàng)作于2023年2月1.3面向?qū)ο笙到y(tǒng)的特點1.3.3多態(tài)性 多態(tài)性是人們?nèi)粘I钪薪?jīng)常遇到的概念,例如:開小汽車、開卡車、開拖拉機、開火車都是開,但作用的對象不同,其具體的動作也不同。但都表達了同樣的含義。 通常,多態(tài)性的概念經(jīng)常被表述為“一個接口,多種方法”。這意味著可以將一組相關(guān)的動作設(shè)計成為一個單獨的接口。通過允許相同的接口來實現(xiàn)通用行為的類,多態(tài)性有助于減少復雜性。當行為應用于各種情形時,選擇特定的行為(方法)是編譯器的工作。程序員不需要手工做出這種選擇,而只須記住和利用通用接口即可。第33頁,課件共41頁,創(chuàng)作于2023年2月1.3面向?qū)ο笙到y(tǒng)的特點1.3.3多態(tài)性 面向?qū)ο笙到y(tǒng)中多態(tài)性主要通過以下兩種方式來實現(xiàn)。重載:使用這種技術(shù),相同的名字可以在不同的語境中被重載為不同的特性署名。語境信息用于解決署名的模糊性。參數(shù)化多態(tài)性:這種多態(tài)性在面向?qū)ο蟮哪P椭谐R灶悓俚男问匠霈F(xiàn)。簡單地說,類屬是使用一個類型參數(shù)化一段軟件的能力。參數(shù)化的類型可以被用來作為構(gòu)造軟件的要素。類屬提供了表示共享一個通用描述的幾個不同的分類的速寫形式,結(jié)果,類屬節(jié)省了程序員為書寫一個通用算法在各種使用情況下需要對相同部分進行描述的時間;而包含多態(tài)性則提供了一種更一般的機制來表達分類之間的關(guān)系。第34頁,課件共41頁,創(chuàng)作于2023年2月1.3面向?qū)ο笙到y(tǒng)的特點1.3.3多態(tài)性 正是由于多態(tài)性,才使人們在處理問題時不需要涉及具體的數(shù)據(jù)結(jié)構(gòu)和類型,只著重于揭示系統(tǒng)的邏輯合理性,從而使設(shè)計可在更高層次上進行,簡化了處理問題的復雜性。同時使設(shè)計的問題更具有良好的可擴充性。第35頁,課件共41頁,創(chuàng)作于2023年2月1.4面向?qū)ο蟮拈_發(fā)方法1.4.1面向?qū)ο蟮姆治?面向?qū)ο蟮姆治觯∣bject-OrientedAnalysis,OOA)就是運用面向?qū)ο蟮姆椒▽δ繕讼到y(tǒng)進行分析和理解,找出描述問題域和系統(tǒng)責任所需要的對象,定義對象的基本框架(包括對象的屬性、操作及它們之間的關(guān)系),最后得到能夠滿足用戶需求的系統(tǒng)分析模型。OOA主要有以下5項任務。 (1)識別問題域中的對象和類。通過對問題域和系統(tǒng)責任的深入分析,盡可能地找出與應用有關(guān)的對象和類,并從中篩選出真正有用的對象和類。第36頁,課件共41頁,創(chuàng)作于2023年2月1.4面向?qū)ο蟮拈_發(fā)方法1.4.1面向?qū)ο蟮姆治?(2)確定結(jié)構(gòu)。找出對象和類中存在的各種整體-部分結(jié)構(gòu)和一般-特殊結(jié)構(gòu),并進一步確定這些結(jié)構(gòu)組合而成的多重結(jié)構(gòu)。 (3)確定主題。如果系統(tǒng)包含大量的對象和類,那么可以劃分出不同的應用主題域,并按照主題對分析模型進行分解。 (4)定義屬性。識別各

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論