理解面向过程和面向对象的程序设计方法
一、結(jié)構(gòu)化程序設(shè)計(jì)
1,概念:
傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)思想的核心是功能的分解。將問(wèn)題分解為多個(gè)功能模塊,根據(jù)模塊功能來(lái)設(shè)計(jì)用于存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),最后編寫了過(guò)程(函數(shù))對(duì)數(shù)據(jù)進(jìn)行操作實(shí)現(xiàn)模塊的功能。程序由一系列處理數(shù)據(jù)的過(guò)程(函數(shù))組成。這種設(shè)計(jì)方法的重點(diǎn)是面向過(guò)程的,也稱為面向過(guò)程的程序設(shè)計(jì)方法。
2,特點(diǎn):
傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)思想可歸結(jié)為:
“程序=數(shù)據(jù)結(jié)構(gòu)+算法”
數(shù)據(jù)結(jié)構(gòu)用于量化描述要解決的問(wèn)題。
算法研究如何以更快、更有效的方式來(lái)組織求解問(wèn)題的具體過(guò)程,將程序定義為處理數(shù)據(jù)的一系列過(guò)程。面向過(guò)程的程序設(shè)計(jì)把數(shù)據(jù)結(jié)構(gòu)和過(guò)程看作兩個(gè)實(shí)體,以過(guò)程為中心,特點(diǎn)是數(shù)據(jù)和程序分離,即數(shù)據(jù)和數(shù)據(jù)處理分離。
結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用自頂向下,并逐步細(xì)化的設(shè)計(jì)方法。算法實(shí)現(xiàn)采用順序、選擇、循環(huán)三種控制結(jié)構(gòu)。
3,實(shí)例:
4,優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
通過(guò)自頂向下,并逐步細(xì)化的設(shè)計(jì)方法,為處理復(fù)雜問(wèn)題提供有力手段。性能比面向?qū)ο蟾?#xff0c;因?yàn)轭愓{(diào)用時(shí)需要實(shí)例化,開(kāi)銷比較大,比較消耗資源,比如單片機(jī)、嵌入式開(kāi)發(fā)、Linux/Unix等一般采用面向過(guò)程開(kāi)發(fā),性能是最重要的因素
缺點(diǎn):
(1)模塊間調(diào)用關(guān)系復(fù)雜,增加了模塊間的依賴性和修改調(diào)試程序的難度,難以適應(yīng)大型軟件設(shè)計(jì)
(2)數(shù)據(jù)結(jié)構(gòu)和過(guò)程分離,一旦數(shù)據(jù)結(jié)構(gòu)發(fā)生改變,必須修改與之相關(guān)的所有模塊對(duì)應(yīng)的過(guò)程或函數(shù)
二、面向?qū)ο蟮某绦蛟O(shè)計(jì)
1,概念
在面向?qū)ο蟪绦蛟O(shè)計(jì)中,重點(diǎn)是將要被操作的數(shù)據(jù),而不是實(shí)現(xiàn)操作的過(guò)程。數(shù)據(jù)是軟件分解的基礎(chǔ),而不是功能。重要的是不把數(shù)據(jù)和對(duì)數(shù)據(jù)將要執(zhí)行的操作視為兩個(gè)單獨(dú)的實(shí)體。而是把它們當(dāng)作一個(gè)完整的實(shí)體(對(duì)象)。外部程序和過(guò)程程無(wú)法直接訪問(wèn)數(shù)據(jù)本身,從而使數(shù)據(jù)更安全。同類對(duì)象還可抽象出共性,形成類。程序有類的定義和類的使用構(gòu)成,主程序中定義各個(gè)對(duì)象并規(guī)定他們之間傳遞消息的先后順序;程序中的操作都是通過(guò)向?qū)ο蟀l(fā)送消息來(lái)實(shí)現(xiàn)。對(duì)象接受消息后,啟動(dòng)此類對(duì)象有關(guān)的函數(shù)(方法)來(lái)完成相應(yīng)的操作。
比如:每個(gè)銀行賬戶是一個(gè)對(duì)象,包括賬戶數(shù)據(jù)(賬戶號(hào)、名稱、余額等)和對(duì)數(shù)據(jù)的操作:存款、取款、轉(zhuǎn)賬(通過(guò)函數(shù)實(shí)現(xiàn)),所有的銀行賬戶具有相同的數(shù)據(jù)屬性和操作,可抽象出共性,形成銀行賬戶類。每個(gè)銀行帳戶都是銀行帳戶類的一個(gè)實(shí)例。在面向?qū)ο笾?#xff0c;每個(gè)銀行帳戶都被稱為銀行帳戶類的對(duì)象。
對(duì)象與類的概念及關(guān)系:
對(duì)象間的交互:
2,特點(diǎn)
(1)封裝性
對(duì)象是一個(gè)封裝體,在其中封裝了該對(duì)象的屬性和操作。通過(guò)限制對(duì)屬性和操作的訪問(wèn)權(quán)限,可以將屬性“隱藏”在對(duì)象內(nèi)部,對(duì)外部提供某些接口(公有),在對(duì)象之外只能通過(guò)接口對(duì)對(duì)象進(jìn)行操作。
(2)繼承與派生性
(3)多態(tài)性
多態(tài)性是指同一個(gè)消息被不同對(duì)象接收時(shí),產(chǎn)生不同的結(jié)果,即同一接口,不同方法。分為編譯時(shí)多態(tài)(函數(shù)、運(yùn)算符重載實(shí)現(xiàn))和運(yùn)行時(shí)多態(tài)(繼承和虛函數(shù)實(shí)現(xiàn))
3,面向?qū)ο蟮能浖_(kāi)發(fā)方法:
4,優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
(1)易維護(hù)、易復(fù)用、易擴(kuò)展,由于面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特性,可以設(shè)計(jì)出低耦合的系統(tǒng),使系統(tǒng)更加靈活、更加易于維護(hù)。
(2)可直接模擬現(xiàn)實(shí)世界。
缺點(diǎn):
性能比面向過(guò)程低
總結(jié)
以上是生活随笔為你收集整理的理解面向过程和面向对象的程序设计方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 釜山行有的2部吗?讲的是啥?
- 下一篇: 微商个性签名简短励志