下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面對(duì)過(guò)程與面對(duì)對(duì)象程序設(shè)計(jì)一、面對(duì)過(guò)程的程序設(shè)計(jì)面對(duì)過(guò)程(ProcessOriented)這個(gè)詞是在面對(duì)對(duì)象(ObjectOriented)消失之后為與之相對(duì)而提出的,其實(shí)它在以前基本被叫做"結(jié)構(gòu)化編程〃。早期的程序設(shè)計(jì),大量使用共享變量(全局變量)和GOTO語(yǔ)句一類(lèi)的東西,后來(lái)有人證明全部的程序流程都可以使用三種基本流程(挨次、選擇、重復(fù))來(lái)實(shí)現(xiàn),并提出"GOTO有害說(shuō)",從今人們進(jìn)行編程的方式發(fā)生重大變化,每種語(yǔ)言都供應(yīng)這些基本掌握結(jié)構(gòu)的實(shí)現(xiàn)方式,并供應(yīng)把數(shù)據(jù)訪(fǎng)問(wèn)局部化的力量,以及某種形式的模塊化/分別編譯機(jī)制。在這些基礎(chǔ)上,人們所進(jìn)行的編程活動(dòng)基本是通過(guò)編寫(xiě)用于不同目的的功能函數(shù)/過(guò)程來(lái)實(shí)現(xiàn),故稱(chēng)為“面對(duì)過(guò)程"。面對(duì)過(guò)程設(shè)計(jì)概述面對(duì)過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì)方法就是采納面對(duì)過(guò)程的方法來(lái)設(shè)計(jì)結(jié)構(gòu)化程序。結(jié)構(gòu)化程序通常包含一個(gè)主程序和若干個(gè)子過(guò)程,其中每個(gè)子過(guò)程都描述了某一個(gè)小問(wèn)題的解決方法再由主過(guò)程自頂向下調(diào)用各子過(guò)程,來(lái)逐步解決整個(gè)問(wèn)題。結(jié)構(gòu)化程序設(shè)計(jì)方法是一種數(shù)學(xué)思維或計(jì)算機(jī)思維方法,和人們熟悉世界時(shí)所習(xí)慣使用的方法不同。面對(duì)過(guò)程開(kāi)發(fā)方式是對(duì)計(jì)算機(jī)底層結(jié)構(gòu)的一層抽象,它把程序的內(nèi)容分為數(shù)據(jù)和操縱數(shù)據(jù)的操作兩部分。這種編程方式的核心問(wèn)題是數(shù)據(jù)結(jié)構(gòu)和算法的開(kāi)發(fā)和優(yōu)化。C語(yǔ)言所供應(yīng)的機(jī)制就是典型的結(jié)構(gòu)化編程設(shè)施。面對(duì)對(duì)象設(shè)計(jì)的特點(diǎn)面對(duì)過(guò)程的程序設(shè)計(jì)方法通過(guò)在程序中模擬問(wèn)題求解中的過(guò)程來(lái)進(jìn)行問(wèn)題求解,這種方法認(rèn)為過(guò)程或函數(shù)可以作為建立大型簡(jiǎn)單軟件系統(tǒng)的抽象機(jī)制。但由于在問(wèn)題求解過(guò)程中,一些過(guò)程匕匕較簡(jiǎn)單,為掌握簡(jiǎn)單性,引入了功能分解的方法,即將一個(gè)簡(jiǎn)單的過(guò)程分解為簡(jiǎn)單性較低的低級(jí)過(guò)程,這種分解始終進(jìn)行到參加設(shè)計(jì)和編程的人員可以理解的步驟或過(guò)程為止。這樣使得系統(tǒng)是過(guò)程的組件,在整個(gè)分解過(guò)程中,數(shù)據(jù)結(jié)構(gòu)的支配是出于對(duì)過(guò)程組織的需要而進(jìn)行的。因此,數(shù)據(jù)處于次要地位,而過(guò)程是關(guān)懷的焦點(diǎn)。面對(duì)過(guò)程的程序方法把重點(diǎn)放在解決問(wèn)題的過(guò)程上,將數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)結(jié)構(gòu)的函數(shù)分開(kāi),在方法上存在明顯的不足。二、面對(duì)對(duì)象的程序設(shè)計(jì)人們?cè)谑煜た陀^世界中的各種系統(tǒng)時(shí)所習(xí)慣使用的方法是面對(duì)對(duì)象的方法。面對(duì)對(duì)象的程序設(shè)計(jì)(OOP)方法就是用人類(lèi)在現(xiàn)實(shí)生活中常用的思維方法來(lái)認(rèn)識(shí)、理解和描述客觀事物,強(qiáng)調(diào)最終建立的程序系統(tǒng)能夠映射問(wèn)題域,即程序系統(tǒng)中的對(duì)象以及對(duì)象之間的關(guān)系能夠照實(shí)地反映問(wèn)題域中固有的事物及其關(guān)系。因此,它為我們提出了一個(gè)全新的概念,其主要思想是將數(shù)據(jù)(成員數(shù)據(jù))及處理這些數(shù)據(jù)的相應(yīng)函數(shù)(成員函數(shù))封裝到一個(gè)類(lèi)(class)中,而使用類(lèi)的數(shù)據(jù)變量則稱(chēng)為對(duì)象(object工面對(duì)對(duì)象設(shè)計(jì)概述面對(duì)對(duì)象的程序在程序結(jié)構(gòu)上表現(xiàn)為類(lèi)之間的聯(lián)系,這些聯(lián)系反映了程序運(yùn)行時(shí)對(duì)象之間的消息傳遞關(guān)系,程序正文中類(lèi)之間的靜態(tài)聯(lián)系供應(yīng)了在程序運(yùn)行時(shí)對(duì)象之間的消息傳遞的通道。面對(duì)對(duì)象的程序的功能是通過(guò)特定的消息傳遞序列來(lái)實(shí)現(xiàn)的。使用面對(duì)對(duì)象的程序設(shè)計(jì)方法設(shè)計(jì)軟件系統(tǒng)必需首先清晰軟件系統(tǒng)的構(gòu)造塊:對(duì)象。在面對(duì)對(duì)象的程序設(shè)計(jì)中,對(duì)象就是將數(shù)據(jù)和對(duì)數(shù)據(jù)進(jìn)行的合法操作結(jié)合于一體的抽象實(shí)體,以這種實(shí)體所構(gòu)成的程序就是面對(duì)對(duì)象的程序。面對(duì)對(duì)象方法中,對(duì)象可以接受其他對(duì)象傳來(lái)的消息,也可以向其他對(duì)象發(fā)送消息。有的語(yǔ)言靜態(tài)類(lèi)型,打算了對(duì)象可接受的消息的范圍,這稱(chēng)為對(duì)象的類(lèi)型的接口。有的語(yǔ)言中對(duì)象可以接受任1可消息,但只對(duì)其有意義的消息進(jìn)行反應(yīng)。對(duì)象中可以包含其他對(duì)象,這成為“聚合”,對(duì)象可以被當(dāng)作其他類(lèi)型的對(duì)象,這要求對(duì)象的類(lèi)型“繼承〃此外的類(lèi)型。對(duì)象只能通過(guò)其所供應(yīng)的接口來(lái)進(jìn)行訪(fǎng)問(wèn),其內(nèi)部詳細(xì)實(shí)現(xiàn)是不行訪(fǎng)問(wèn)的,這成為〃封裝二面對(duì)對(duì)象方法的三個(gè)核心'要素是:封裝、繼承、多態(tài)。面對(duì)對(duì)象設(shè)計(jì)的基本概念.對(duì)象對(duì)象的本意是指某一事物,即對(duì)象是可以看到、摸到、感覺(jué)到的一種實(shí)體。在面對(duì)對(duì)象的技術(shù)中,對(duì)象是指計(jì)算機(jī)系統(tǒng)的一個(gè)基本成分,它有一個(gè)唯一的名,有一組狀態(tài)(用公共數(shù)據(jù)和私有數(shù)據(jù)表示)及表示對(duì)象行為的一組公共或私有操作,即”對(duì)象=數(shù)據(jù)+動(dòng)作",對(duì)象具有一個(gè)操作集合和一個(gè)紀(jì)錄操作結(jié)果的局部共享狀態(tài)。.類(lèi)(class)類(lèi)是具有相同操作(功能)與相同數(shù)據(jù)格式(特征)的對(duì)象集合。它是面對(duì)對(duì)象程序設(shè)計(jì)語(yǔ)言供應(yīng)的可再用軟件成分,類(lèi)可以看作為抽象數(shù)據(jù)類(lèi)型的詳細(xì)實(shí)現(xiàn)。抽象數(shù)據(jù)類(lèi)型是指數(shù)據(jù)的集合和作用其上的操作的集合,而抽象數(shù)據(jù)類(lèi)型則不關(guān)懷實(shí)現(xiàn)的詳細(xì)細(xì)節(jié),從外部看,類(lèi)的行為可以用新定義的操作加以規(guī)定。類(lèi)為對(duì)象集合的抽象,它規(guī)定了對(duì)象的公共狀態(tài)與行為特征,即對(duì)象為類(lèi)的一個(gè)實(shí)例(instance),對(duì)象與類(lèi)的關(guān)系相當(dāng)于程序設(shè)計(jì)語(yǔ)言中變量與變量所具有的類(lèi)型的關(guān)系。3消息消息是要求某個(gè)操作的規(guī)格說(shuō)明,由三部分組成:接受消息的對(duì)象、消息選擇子(消息名)和零個(gè)或多個(gè)變?cè)?.方法對(duì)象所能執(zhí)行的操作稱(chēng)為方法,在C++語(yǔ)言中稱(chēng)為成員函數(shù)。方法是類(lèi)中定義的函數(shù),描述對(duì)象執(zhí)行操作的算法。2.3面對(duì)對(duì)象設(shè)計(jì)的優(yōu)點(diǎn)面對(duì)對(duì)象的程序設(shè)計(jì)方法與面對(duì)過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì)方法相比較,面對(duì)對(duì)象的方法至少有三個(gè)優(yōu)點(diǎn):第一,面對(duì)對(duì)象的程序設(shè)計(jì)方法通過(guò)將數(shù)據(jù)封裝在類(lèi)中,對(duì)信息進(jìn)行了很好的隱蔽,面對(duì)對(duì)象的程序簡(jiǎn)單閱讀和理解,程序員只需了解必要的細(xì)節(jié),降低了程序的簡(jiǎn)單性,使其具有較好的可維護(hù)性;其次,程序員通過(guò)修改、添加或刪除對(duì)象,可以很簡(jiǎn)單的修改、添加或刪除程序的屬性,使程序具有易修改的特性;第三,程序員可以將某些公用的類(lèi)和對(duì)象保存起來(lái),隨時(shí)插入到應(yīng)用程序中,不需做什么修改就能使用,具有很好的可重用性。因此,面對(duì)對(duì)象的設(shè)計(jì)方法是提高軟件開(kāi)發(fā)效率,解決軟件重用的有效方法。綜上,面對(duì)過(guò)程就是分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。面對(duì)對(duì)象是把構(gòu)成問(wèn)題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問(wèn)題的步驟中的行為。面對(duì)對(duì)象的程序設(shè)計(jì)方法所得到的程序是類(lèi)的集合,而面對(duì)過(guò)程的程序設(shè)計(jì)方法所得到的程序是函數(shù)的集合。三、程序的設(shè)計(jì)模式對(duì)于設(shè)計(jì)模式,ChristopherAlexander和他的同事們可能最先將模式語(yǔ)言(patternlanguage)應(yīng)用于城市建筑領(lǐng)域,他的思想和其他人的貢獻(xiàn)已經(jīng)根植于面對(duì)對(duì)象軟件界。簡(jiǎn)而言之,軟件領(lǐng)域中的設(shè)計(jì)模式為開(kāi)發(fā)人員供應(yīng)了一種使用專(zhuān)家設(shè)計(jì)閱歷的有效途徑。設(shè)計(jì)模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類(lèi)編目的、代碼設(shè)計(jì)閱歷的總結(jié)。毫無(wú)疑問(wèn),設(shè)計(jì)模式于己于他人于系統(tǒng)都是多贏的;設(shè)計(jì)模式使代碼編制真正工程化;設(shè)計(jì)模式是軟件工程的基石脈絡(luò),猶如大廈的結(jié)構(gòu)一樣。T殳而言,一個(gè)模式包含四個(gè)要素:模式名稱(chēng)、問(wèn)題、解決方案和效果。一個(gè)設(shè)計(jì)模式命名、抽象和確定了一個(gè)通用設(shè)計(jì)結(jié)構(gòu)的主要方面,這些設(shè)計(jì)結(jié)構(gòu)能被用來(lái)構(gòu)造可復(fù)用的面對(duì)對(duì)象設(shè)計(jì)。設(shè)計(jì)模式確定了所包含的類(lèi)和實(shí)例,它們的角色、協(xié)作方式以及職責(zé)安排。每一個(gè)設(shè)計(jì)模式都集中于一個(gè)特定的面對(duì)對(duì)象設(shè)計(jì)問(wèn)題或設(shè)計(jì)要點(diǎn),描述了什么時(shí)候使用它,在另一些設(shè)計(jì)約束條件下是否還能使用,以及使用的效果和如何取舍。雖然設(shè)計(jì)模式描述的是面對(duì)對(duì)象設(shè)計(jì),但它們都基于實(shí)際的解決方案,這些方案的實(shí)現(xiàn)語(yǔ)言是Smalltalk和C++等主流面對(duì)對(duì)象編程語(yǔ)言,而不是過(guò)程式語(yǔ)言(Pascal.C、Ada)或更具動(dòng)態(tài)特性的面對(duì)對(duì)象語(yǔ)言(CLOS、Dylan.Self).設(shè)計(jì)模式分為三種類(lèi)型,共23種,創(chuàng)建型模式包括單例模式、抽象工廠模式、建筑者模式、工廠模式、原型模式;結(jié)構(gòu)型模式包括適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式;行為型模式包括模版方法模式、命令模式、迭代器模式、觀
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025教師公寓出租合同樣本
- 2025車(chē)輛承包合同范本
- 電信詐騙的分析與對(duì)策
- 科技節(jié)慶活動(dòng)的多元策劃與實(shí)施經(jīng)驗(yàn)
- 趣味數(shù)學(xué)課堂寓教于樂(lè)的秘密武器
- 2024年智慧物流投資申請(qǐng)報(bào)告
- 2024年農(nóng)業(yè)運(yùn)輸機(jī)械項(xiàng)目資金籌措計(jì)劃書(shū)代可行性研究報(bào)告
- 二零二五年度酒店客房預(yù)訂取消退款合同4篇
- 二零二五年度創(chuàng)業(yè)型企業(yè)環(huán)保設(shè)施改造升級(jí)與合規(guī)審查合同4篇
- 2025年北師大版九年級(jí)生物上冊(cè)階段測(cè)試試卷
- 2025年上半年江蘇連云港灌云縣招聘“鄉(xiāng)村振興專(zhuān)干”16人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- DB3301T 0382-2022 公共資源交易開(kāi)評(píng)標(biāo)數(shù)字見(jiàn)證服務(wù)規(guī)范
- 人教版2024-2025學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末壓軸題練習(xí)
- 江蘇省無(wú)錫市2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 俄語(yǔ)版:中國(guó)文化概論之中國(guó)的傳統(tǒng)節(jié)日
- 2022年湖南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 婦科一病一品護(hù)理匯報(bào)
- 哪吒之魔童降世
- 2022年上海市各區(qū)中考一模語(yǔ)文試卷及答案
- 2024年全國(guó)統(tǒng)一高考數(shù)學(xué)試卷(新高考Ⅱ)含答案
- 我國(guó)無(wú)菌包裝行業(yè)消費(fèi)量已超千億包-下游需求仍存擴(kuò)容潛力
評(píng)論
0/150
提交評(píng)論