下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
面對過程與面對對象程序設(shè)計一、面對過程的程序設(shè)計面對過程(ProcessOriented)這個詞是在面對對象(ObjectOriented)消失之后為與之相對而提出的,其實它在以前基本被叫做"結(jié)構(gòu)化編程〃。早期的程序設(shè)計,大量使用共享變量(全局變量)和GOTO語句一類的東西,后來有人證明全部的程序流程都可以使用三種基本流程(挨次、選擇、重復(fù))來實現(xiàn),并提出"GOTO有害說",從今人們進行編程的方式發(fā)生重大變化,每種語言都供應(yīng)這些基本掌握結(jié)構(gòu)的實現(xiàn)方式,并供應(yīng)把數(shù)據(jù)訪問局部化的力量,以及某種形式的模塊化/分別編譯機制。在這些基礎(chǔ)上,人們所進行的編程活動基本是通過編寫用于不同目的的功能函數(shù)/過程來實現(xiàn),故稱為“面對過程"。面對過程設(shè)計概述面對過程的結(jié)構(gòu)化程序設(shè)計方法就是采納面對過程的方法來設(shè)計結(jié)構(gòu)化程序。結(jié)構(gòu)化程序通常包含一個主程序和若干個子過程,其中每個子過程都描述了某一個小問題的解決方法再由主過程自頂向下調(diào)用各子過程,來逐步解決整個問題。結(jié)構(gòu)化程序設(shè)計方法是一種數(shù)學(xué)思維或計算機思維方法,和人們熟悉世界時所習(xí)慣使用的方法不同。面對過程開發(fā)方式是對計算機底層結(jié)構(gòu)的一層抽象,它把程序的內(nèi)容分為數(shù)據(jù)和操縱數(shù)據(jù)的操作兩部分。這種編程方式的核心問題是數(shù)據(jù)結(jié)構(gòu)和算法的開發(fā)和優(yōu)化。C語言所供應(yīng)的機制就是典型的結(jié)構(gòu)化編程設(shè)施。面對對象設(shè)計的特點面對過程的程序設(shè)計方法通過在程序中模擬問題求解中的過程來進行問題求解,這種方法認為過程或函數(shù)可以作為建立大型簡單軟件系統(tǒng)的抽象機制。但由于在問題求解過程中,一些過程匕匕較簡單,為掌握簡單性,引入了功能分解的方法,即將一個簡單的過程分解為簡單性較低的低級過程,這種分解始終進行到參加設(shè)計和編程的人員可以理解的步驟或過程為止。這樣使得系統(tǒng)是過程的組件,在整個分解過程中,數(shù)據(jù)結(jié)構(gòu)的支配是出于對過程組織的需要而進行的。因此,數(shù)據(jù)處于次要地位,而過程是關(guān)懷的焦點。面對過程的程序方法把重點放在解決問題的過程上,將數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)結(jié)構(gòu)的函數(shù)分開,在方法上存在明顯的不足。二、面對對象的程序設(shè)計人們在熟悉客觀世界中的各種系統(tǒng)時所習(xí)慣使用的方法是面對對象的方法。面對對象的程序設(shè)計(OOP)方法就是用人類在現(xiàn)實生活中常用的思維方法來認識、理解和描述客觀事物,強調(diào)最終建立的程序系統(tǒng)能夠映射問題域,即程序系統(tǒng)中的對象以及對象之間的關(guān)系能夠照實地反映問題域中固有的事物及其關(guān)系。因此,它為我們提出了一個全新的概念,其主要思想是將數(shù)據(jù)(成員數(shù)據(jù))及處理這些數(shù)據(jù)的相應(yīng)函數(shù)(成員函數(shù))封裝到一個類(class)中,而使用類的數(shù)據(jù)變量則稱為對象(object工面對對象設(shè)計概述面對對象的程序在程序結(jié)構(gòu)上表現(xiàn)為類之間的聯(lián)系,這些聯(lián)系反映了程序運行時對象之間的消息傳遞關(guān)系,程序正文中類之間的靜態(tài)聯(lián)系供應(yīng)了在程序運行時對象之間的消息傳遞的通道。面對對象的程序的功能是通過特定的消息傳遞序列來實現(xiàn)的。使用面對對象的程序設(shè)計方法設(shè)計軟件系統(tǒng)必需首先清晰軟件系統(tǒng)的構(gòu)造塊:對象。在面對對象的程序設(shè)計中,對象就是將數(shù)據(jù)和對數(shù)據(jù)進行的合法操作結(jié)合于一體的抽象實體,以這種實體所構(gòu)成的程序就是面對對象的程序。面對對象方法中,對象可以接受其他對象傳來的消息,也可以向其他對象發(fā)送消息。有的語言靜態(tài)類型,打算了對象可接受的消息的范圍,這稱為對象的類型的接口。有的語言中對象可以接受任1可消息,但只對其有意義的消息進行反應(yīng)。對象中可以包含其他對象,這成為“聚合”,對象可以被當(dāng)作其他類型的對象,這要求對象的類型“繼承〃此外的類型。對象只能通過其所供應(yīng)的接口來進行訪問,其內(nèi)部詳細實現(xiàn)是不行訪問的,這成為〃封裝二面對對象方法的三個核心'要素是:封裝、繼承、多態(tài)。面對對象設(shè)計的基本概念.對象對象的本意是指某一事物,即對象是可以看到、摸到、感覺到的一種實體。在面對對象的技術(shù)中,對象是指計算機系統(tǒng)的一個基本成分,它有一個唯一的名,有一組狀態(tài)(用公共數(shù)據(jù)和私有數(shù)據(jù)表示)及表示對象行為的一組公共或私有操作,即”對象=數(shù)據(jù)+動作",對象具有一個操作集合和一個紀錄操作結(jié)果的局部共享狀態(tài)。.類(class)類是具有相同操作(功能)與相同數(shù)據(jù)格式(特征)的對象集合。它是面對對象程序設(shè)計語言供應(yīng)的可再用軟件成分,類可以看作為抽象數(shù)據(jù)類型的詳細實現(xiàn)。抽象數(shù)據(jù)類型是指數(shù)據(jù)的集合和作用其上的操作的集合,而抽象數(shù)據(jù)類型則不關(guān)懷實現(xiàn)的詳細細節(jié),從外部看,類的行為可以用新定義的操作加以規(guī)定。類為對象集合的抽象,它規(guī)定了對象的公共狀態(tài)與行為特征,即對象為類的一個實例(instance),對象與類的關(guān)系相當(dāng)于程序設(shè)計語言中變量與變量所具有的類型的關(guān)系。3消息消息是要求某個操作的規(guī)格說明,由三部分組成:接受消息的對象、消息選擇子(消息名)和零個或多個變元。4.方法對象所能執(zhí)行的操作稱為方法,在C++語言中稱為成員函數(shù)。方法是類中定義的函數(shù),描述對象執(zhí)行操作的算法。2.3面對對象設(shè)計的優(yōu)點面對對象的程序設(shè)計方法與面對過程的結(jié)構(gòu)化程序設(shè)計方法相比較,面對對象的方法至少有三個優(yōu)點:第一,面對對象的程序設(shè)計方法通過將數(shù)據(jù)封裝在類中,對信息進行了很好的隱蔽,面對對象的程序簡單閱讀和理解,程序員只需了解必要的細節(jié),降低了程序的簡單性,使其具有較好的可維護性;其次,程序員通過修改、添加或刪除對象,可以很簡單的修改、添加或刪除程序的屬性,使程序具有易修改的特性;第三,程序員可以將某些公用的類和對象保存起來,隨時插入到應(yīng)用程序中,不需做什么修改就能使用,具有很好的可重用性。因此,面對對象的設(shè)計方法是提高軟件開發(fā)效率,解決軟件重用的有效方法。綜上,面對過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調(diào)用就可以了。面對對象是把構(gòu)成問題事務(wù)分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。面對對象的程序設(shè)計方法所得到的程序是類的集合,而面對過程的程序設(shè)計方法所得到的程序是函數(shù)的集合。三、程序的設(shè)計模式對于設(shè)計模式,ChristopherAlexander和他的同事們可能最先將模式語言(patternlanguage)應(yīng)用于城市建筑領(lǐng)域,他的思想和其他人的貢獻已經(jīng)根植于面對對象軟件界。簡而言之,軟件領(lǐng)域中的設(shè)計模式為開發(fā)人員供應(yīng)了一種使用專家設(shè)計閱歷的有效途徑。設(shè)計模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計閱歷的總結(jié)。毫無疑問,設(shè)計模式于己于他人于系統(tǒng)都是多贏的;設(shè)計模式使代碼編制真正工程化;設(shè)計模式是軟件工程的基石脈絡(luò),猶如大廈的結(jié)構(gòu)一樣。T殳而言,一個模式包含四個要素:模式名稱、問題、解決方案和效果。一個設(shè)計模式命名、抽象和確定了一個通用設(shè)計結(jié)構(gòu)的主要方面,這些設(shè)計結(jié)構(gòu)能被用來構(gòu)造可復(fù)用的面對對象設(shè)計。設(shè)計模式確定了所包含的類和實例,它們的角色、協(xié)作方式以及職責(zé)安排。每一個設(shè)計模式都集中于一個特定的面對對象設(shè)計問題或設(shè)計要點,描述了什么時候使用它,在另一些設(shè)計約束條件下是否還能使用,以及使用的效果和如何取舍。雖然設(shè)計模式描述的是面對對象設(shè)計,但它們都基于實際的解決方案,這些方案的實現(xiàn)語言是Smalltalk和C++等主流面對對象編程語言,而不是過程式語言(Pascal.C、Ada)或更具動態(tài)特性的面對對象語言(CLOS、Dylan.Self).設(shè)計模式分為三種類型,共23種,創(chuàng)建型模式包括單例模式、抽象工廠模式、建筑者模式、工廠模式、原型模式;結(jié)構(gòu)型模式包括適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式;行為型模式包括模版方法模式、命令模式、迭代器模式、觀
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通事故責(zé)任賠償協(xié)議書七篇
- 入股個人合作協(xié)議書
- 關(guān)于重慶市離婚協(xié)議書8篇
- 2025經(jīng)濟損失賠償協(xié)議書10篇
- 銀屑病病因介紹
- (2024)塑料瓶胚生產(chǎn)建設(shè)項目可行性研究報告(一)
- 山東省泰安市東平縣實驗中學(xué)2022-2023學(xué)年七年級上學(xué)期第二次月考生物試題(原卷版)-A4
- 泌尿腫瘤病區(qū)實習(xí)生考試
- 電子裝接實05課件講解
- 第四章建設(shè)工程合同法律原理與實務(wù)-授課吳超27課件講解
- GB/T 20734-2006液化天然氣汽車專用裝置安裝要求
- GB/T 20197-2006降解塑料的定義、分類、標志和降解性能要求
- GB/T 15561-2008靜態(tài)電子軌道衡
- GB/T 1412-2005球墨鑄鐵用生鐵
- 軍事理論論述題
- 寧德時代財務(wù)報表分析
- 門式起重機安裝施工方案
- 高中語文語法知識課件
- 《國際法》形成性考核參考資料廣東開放大學(xué)2022年10月題庫
- 《茅臺酒有限公司內(nèi)部控制現(xiàn)狀及問題案例分析》8800字
- 純電動汽車整車控制器(VCU)策略 PPT
評論
0/150
提交評論