亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談面向?qū)ο蠛兔嫦蜻^程程序設(shè)計(jì)

        2017-04-14 09:16:03河北農(nóng)業(yè)大學(xué)渤海校區(qū)理工學(xué)院石博文
        電子世界 2017年1期
        關(guān)鍵詞:類庫(kù)多態(tài)程序員

        河北農(nóng)業(yè)大學(xué)渤海校區(qū)理工學(xué)院 石博文

        淺談面向?qū)ο蠛兔嫦蜻^程程序設(shè)計(jì)

        河北農(nóng)業(yè)大學(xué)渤海校區(qū)理工學(xué)院 石博文

        主要論述了面向過程程序設(shè)計(jì)的結(jié)構(gòu)化思想和面向?qū)ο蟪绦蛟O(shè)計(jì)的抽象、封裝、繼承、多態(tài)技術(shù),并詳細(xì)介紹了兩種思維方式的特點(diǎn)、優(yōu)缺點(diǎn)以及相互聯(lián)系。

        程序設(shè)計(jì);面向?qū)ο?;面向過程;模塊;封裝;繼承;多態(tài)

        1 引言

        程序設(shè)計(jì)是給出解決特定問題程序的過程。程序設(shè)計(jì)的本質(zhì)是把人們?cè)诂F(xiàn)實(shí)生活中遇到的問題經(jīng)過抽象處理,再利用計(jì)算機(jī)語(yǔ)言轉(zhuǎn)換到機(jī)器能夠理解的層面上去。如今,在程序設(shè)計(jì)中,有兩個(gè)非常成熟的設(shè)計(jì)方式:面向過程的程序設(shè)計(jì)和面向?qū)ο蟮某绦蛟O(shè)計(jì)。

        2 面向過程的程序設(shè)計(jì)

        2.1 設(shè)計(jì)思想

        面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候再一個(gè)一個(gè)調(diào)用。結(jié)構(gòu)化程序設(shè)計(jì)是其核心思想。

        2.2 設(shè)計(jì)特點(diǎn)

        (1)模塊化

        模塊化即功能分解,實(shí)質(zhì)是采用自頂向下、逐步求精的設(shè)計(jì)過程把程序分解成單一處理功能的模塊,進(jìn)而通過調(diào)用相應(yīng)模塊并傳遞參數(shù)以實(shí)現(xiàn)程序的功能,此功能模塊可以理解為函數(shù)、過程、子程序;每一模塊內(nèi)部均是由順序、選擇、循環(huán)三種基本結(jié)構(gòu)組成,利用這三種結(jié)構(gòu)的組合、嵌套,可以實(shí)現(xiàn)任何復(fù)雜的程序設(shè)計(jì)。功能分解使得系統(tǒng)是模塊的組件即:程序=(模塊+模塊+模塊+…)、模塊=(數(shù)據(jù)結(jié)構(gòu)+算法)[1]。

        模塊設(shè)計(jì)應(yīng)堅(jiān)持“高內(nèi)聚,低耦合”的設(shè)計(jì)原則。其中“高內(nèi)聚”是指每一個(gè)模塊都執(zhí)行一個(gè)完整的功能,具有一個(gè)完整功能的業(yè)務(wù)都組合在一個(gè)模塊當(dāng)中,而不會(huì)分散到兩個(gè)或者多個(gè)模塊當(dāng)中;“低耦合”是指每一個(gè)模塊之間的共用信息應(yīng)該盡量少,每個(gè)模塊之間的交集應(yīng)盡可能小,應(yīng)該盡量降低每個(gè)模塊之間的耦合度。

        (2)數(shù)據(jù)和操作分離

        面向過程的程序設(shè)計(jì)把重點(diǎn)放在解決問題的功能模塊劃分上,將數(shù)據(jù)和操作這些數(shù)據(jù)的函數(shù)分開。數(shù)據(jù)處于次要地位,而過程即模塊劃分是關(guān)心的焦點(diǎn)[2]。

        2.3 設(shè)計(jì)優(yōu)點(diǎn)

        早期的程序設(shè)計(jì)屬于面向計(jì)算機(jī)的程序設(shè)計(jì),程序員需要考慮大量的機(jī)器細(xì)節(jié)。面向過程的程序設(shè)計(jì)優(yōu)點(diǎn)是相對(duì)前期程序設(shè)計(jì)而論的。

        (1)模塊化思想將一個(gè)較復(fù)雜的問題分解為若干個(gè)子問題,各子問題分別由不同的人員解決,提高了開發(fā)效率,便于程序的調(diào)試;

        (2)面向過程的設(shè)計(jì)按解決問題的過程劃分模塊,直接針對(duì)求解關(guān)系,集中處理數(shù)據(jù),運(yùn)行效率很高[3];

        (3)自頂向下逐步求精的方法使程序具有清晰的層次結(jié)構(gòu),容易閱讀和理解,也較容易保證程序的正確性。

        2.4 設(shè)計(jì)缺陷

        (1)軟件模塊重用難。當(dāng)開發(fā)一個(gè)新的軟件系統(tǒng)時(shí),以前開發(fā)的軟件模塊很難直接使用;

        (2)軟件系統(tǒng)功能擴(kuò)展難。一旦用戶的需求發(fā)生變化,要改進(jìn)系統(tǒng)或升級(jí)版本時(shí),程序員要面對(duì)調(diào)用關(guān)系復(fù)雜的許多函數(shù)模塊,系統(tǒng)的功能擴(kuò)展很困難;

        (3)軟件維護(hù)難。軟件的模塊即函數(shù)越來越多,模塊間的調(diào)用關(guān)系越來越復(fù)雜,程序容易出錯(cuò),而且一旦出錯(cuò)很難查找[4]。

        3 面向?qū)ο蟮某绦蛟O(shè)計(jì)

        3.1 設(shè)計(jì)思想

        面向?qū)ο缶褪前褬?gòu)成問題的事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描述某個(gè)事物在整個(gè)解決問題步驟中的行為。

        3.2 設(shè)計(jì)特點(diǎn)

        (1)抽象、類、對(duì)象

        抽象就是把事物共同點(diǎn)抽取出來,以統(tǒng)一的方式進(jìn)行概要描述的一種過程。面向?qū)ο笾?,類是?duì)現(xiàn)實(shí)世界事物的抽象,包括屬性和方法。其中屬性是對(duì)事物靜態(tài)特征的描述,方法是對(duì)事物動(dòng)態(tài)特性即行為的描述[5]。一旦建立了類,就可以基于類初始化成員變量,實(shí)例化出一個(gè)對(duì)象,而程序就是由這一系列對(duì)象組成即:程序=(對(duì)象+對(duì)象+對(duì)象+…)、對(duì)象=(數(shù)據(jù)結(jié)構(gòu)+算法)。

        (2)封裝

        封裝又稱數(shù)據(jù)隱藏,就是將一個(gè)事物的屬性和方法放在一個(gè)類中,對(duì)外只提供訪問該數(shù)據(jù)的方法,程序的其它部分不能直接作用于此數(shù)據(jù)。這一特性大大降低了面向過程中模塊間的耦合性,從而提高了程序的可靠性,盡可能地排除了對(duì)數(shù)據(jù)進(jìn)行任意訪問造成的隱患[6]。

        (3)繼承

        類的繼承實(shí)質(zhì)上是先定義一個(gè)基類(父類),然后用該基類派生出其它的子類,子類在沿襲父類的屬性和方法的同時(shí)可以添加自己特有的屬性和方法。繼承性使得程序得以最大限度地實(shí)現(xiàn)代碼重用,同時(shí)在父類上所做的改動(dòng)可以直接反映到它的所有子類中,軟件可維護(hù)性大為提高。

        (4)多態(tài)

        多態(tài)是指在一般類中定義的屬性或方法被特殊類繼承以后,通過重寫,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。多態(tài)性使得程序員可以將所定義的方法應(yīng)用于多個(gè)類,同一個(gè)屬性和方法在一般類及各個(gè)特殊類中具有不同的語(yǔ)義,并使得程序更加容易擴(kuò)展[7]。

        3.3 設(shè)計(jì)優(yōu)點(diǎn)

        面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)越性是基于它的特點(diǎn)而論的。對(duì)客觀現(xiàn)實(shí)世界事物的抽象,使軟件開發(fā)可以按照人類習(xí)慣的思維方式建立起問題領(lǐng)域的模型從而模擬客觀世界,有利于大型軟件的開發(fā);事物屬性和方法的封裝避免了數(shù)據(jù)的隨意訪問,保證了數(shù)據(jù)的安全性;類與類之間的繼承關(guān)系,最大程度實(shí)現(xiàn)了代碼的重用;繼承關(guān)系下的多態(tài)性增強(qiáng)了程序的靈活性和擴(kuò)展性。

        3.4 設(shè)計(jì)缺陷

        (1)運(yùn)行效率較低。類的大量加載會(huì)犧牲系統(tǒng)性能,降低運(yùn)行速度。雖然CPU速度在提高,內(nèi)存容量在增加,但這一問題仍會(huì)隨著系統(tǒng)規(guī)模變大而逐漸顯示出來,變得越發(fā)嚴(yán)重。

        (2)類庫(kù)龐大。由于類庫(kù)都過于龐大,程序員對(duì)它們的掌握需要一段時(shí)間,從普及、推廣的角度來看,類庫(kù)應(yīng)在保證其功能完備的基礎(chǔ)上進(jìn)行相應(yīng)的縮減。

        (3)類庫(kù)可靠性。越龐大的系統(tǒng)必會(huì)存在我們無(wú)法預(yù)知的問題隱患,程序員無(wú)法完全保證類庫(kù)中的每個(gè)類在各種環(huán)境中百分之百的正確,當(dāng)使用的類發(fā)生了問題,就會(huì)影響后續(xù)工作,程序員也有可能推翻原來的全部工作[8,9]。

        4 結(jié)束語(yǔ)

        面向?qū)ο笾匾晫?duì)現(xiàn)實(shí)世界的抽象,面向過程重視對(duì)問題的功能模塊化,但兩種技術(shù)不是非此即彼的對(duì)立關(guān)系。面向?qū)ο蟮某橄?、封裝、繼承、多態(tài)是建立在面向過程的順序、選擇、循環(huán)三種控制結(jié)構(gòu)之上。因此,如果將一個(gè)軟件任務(wù)分為兩層,那么面向?qū)ο蠹夹g(shù)用于解決“做什么”,而面向過程技術(shù)用于解決“怎么做”。

        [1]馬金霞,宋傳磊.面向過程和面向?qū)ο蟪绦蛟O(shè)計(jì)分析[J].中國(guó)新通信,2016(11).

        [2]錢能.C++程序設(shè)計(jì)教程(第2版)[M].北京:清華大學(xué)出版社,2005(09):13-16.

        [3]許偉剛,梁大周.面向?qū)ο蟪绦蛟O(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,1990(12).

        [4]朱戰(zhàn)立,宋新愛.面向?qū)ο蟪绦蛟O(shè)計(jì)與C++語(yǔ)言[M].北京:電子工業(yè)出版社,2010(07):31-46.

        [5]張海藩.軟件工程導(dǎo)論(第5版)[M].北京:清華大學(xué)出版社,2008(02):203-211.

        [6][美]Grady Booch等.面向?qū)ο蠓治雠c設(shè)計(jì)(第3版)[M].王海鵬,潘加宇譯.北京:人民郵電出版社,2009(08):35-38.

        [7][加]Scott W.Ambler.面向?qū)ο筌浖_發(fā)教程(第2版)[M].車皓陽(yáng),劉銳譯.北京:機(jī)械工業(yè)出版社,2003(06):97-130.

        [8]徐向陽(yáng).面向?qū)ο蟪绦蛟O(shè)計(jì)現(xiàn)狀及發(fā)展趨勢(shì)研究[J].光盤技術(shù),2006(01).

        [9]胡玲.面向?qū)ο蟪绦蛟O(shè)計(jì)和設(shè)計(jì)技術(shù)思考[J].電子技術(shù)與軟件工程,2016(06).

        The Summary between Object-oriented Programming and Process-oriented Programming

        ShiBowen
        (College of Science and Engineering,Agricultural University of Hebei,Cangzhou,061000,China)

        The summary is mainly about structured ideas of process-oriented programming and some important technologies in objectoriented programming like abstract,encapsulation,inheritance and polymorphism.At the same time,the article expatiates the feature,merits and drawbacks as well as the relationship between process-oriented and object-oriented programming.

        programming;object-oriented;process-oriented,module;encapsulation;inheritance;polymorphism

        猜你喜歡
        類庫(kù)多態(tài)程序員
        為了讓媽媽看懂地圖,一位“野生程序員”做了個(gè)小程序
        分層多態(tài)加權(quán)k/n系統(tǒng)的可用性建模與設(shè)計(jì)優(yōu)化
        怎樣成為一名優(yōu)秀程序員
        幼兒100(2020年29期)2020-10-21 06:17:58
        參差多態(tài)而功不唐捐
        用Java編寫客戶機(jī)/服務(wù)器端應(yīng)用程序
        Python在數(shù)據(jù)可視化中的應(yīng)用
        數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果
        軟件工程(2017年12期)2018-01-29 17:35:55
        數(shù)據(jù)結(jié)構(gòu)可視化類庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)
        程序員之子
        意林(2017年24期)2018-01-02 22:49:14
        加班
        三月三(2016年6期)2016-06-21 10:25:33
        亚洲成人一区二区三区不卡| 国产精品毛片无码久久| 亚洲精品99久久久久久| 亚洲精品一区二在线观看| 成人无码一区二区三区| 中文字幕久无码免费久久| 99久久综合九九亚洲| 国产成人久久精品二区三区| 国产免费三级av在线| 国产成人aaaaa级毛片| 亚洲av日韩aⅴ永久无码| 亚洲中文字幕诱惑第一页| 日韩精品在线免费视频| 亚洲国产精品第一区二区| 最新亚洲人AV日韩一区二区| 麻豆激情视频在线观看| 白嫩丰满少妇av一区二区| 国产福利一区二区三区在线观看| 色狠狠一区二区三区香蕉蜜桃| 亚洲五月天中文字幕第一页| 国产成人精品优优av| 色视频www在线播放国产人成| 久久亚洲午夜牛牛影视| 国产成人亚洲系列毛片| 国产精品美女久久久久av超清| 日本高清www午色夜高清视频| 十八岁以下禁止观看黄下载链接| AV中文字幕在线视| 国产不卡视频在线观看| 成 人 免费 在线电影| 国产一区二区精品在线观看| 国产麻豆成人精品av| 狠狠色欧美亚洲狠狠色www| 亚洲av无码1区2区久久| 久久精品中文字幕第一页| 国产精品大片一区二区三区四区| 亚洲欧美乱综合图片区小说区| 精品十八禁免费观看| 亚洲一区二区三区毛片| 欧美老熟妇乱子| 麻豆国产人妻欲求不满|