資源描述:
《舉例說(shuō)明面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、舉例說(shuō)明面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別兩種方法都是編程中的比較常用的方法,從理論上來(lái)說(shuō),都能達(dá)到用計(jì)算機(jī)程序來(lái)解決實(shí)際問(wèn)題的目的,只不過(guò)是其中所體現(xiàn)出來(lái)的思想不一樣而已。面向過(guò)程:面向過(guò)程的思想是把一個(gè)項(xiàng)目、一件事情按照一定的順序,從頭到尾一步一步地做下去,先做什么,后做什么,一直到結(jié)束。這種思想比較好理解,其實(shí)這也是一個(gè)人做事的方法。面向?qū)ο螅好嫦驅(qū)ο蟮乃枷胧前岩粋€(gè)項(xiàng)目、一件事情分成更小的項(xiàng)目,或者說(shuō)分成一個(gè)個(gè)更小的部分,每一部分負(fù)責(zé)什么方面的功能,最后再由這些部分組合而成為一個(gè)整體。這種思想比較適合多人的分工合作,就像一個(gè)大的機(jī)關(guān),分成各個(gè)部門(mén),每個(gè)部門(mén)分別負(fù)責(zé)某樣職能,各個(gè)部門(mén)可以
2、充分發(fā)揮自己的特色,只要符合一定前提就行了。舉例說(shuō)明1:比如剛才說(shuō)的一個(gè)大的機(jī)關(guān),要做某一個(gè)項(xiàng)目,從面向過(guò)程的思想來(lái)說(shuō),應(yīng)該是這樣分析的,先怎么樣,再怎么樣,最后怎么樣。第一樣應(yīng)該如何完成,第二樣應(yīng)該如何完成等等。等到每一步驟都完成,項(xiàng)目也就完成了。而面向?qū)ο蟮乃枷雱t應(yīng)該是這樣想的,這個(gè)項(xiàng)目是由幾個(gè)部分組成的,我們就做好分工,成立一個(gè)部門(mén)來(lái)做一個(gè)部分的功能,另一個(gè)部門(mén)來(lái)做另一個(gè)部分。各個(gè)部門(mén)可以不用理解其他部門(mén)的事,只要完成自己那一部分的事情就OK了。舉例說(shuō)明2:又比如我們有一臺(tái)演出,為簡(jiǎn)單起見(jiàn),假設(shè)有如下流程:主持人開(kāi)場(chǎng)——演員一表演——演員二表演——主持人總結(jié)。用面向過(guò)程的思想
3、來(lái)分析,就是先完成主持人開(kāi)場(chǎng),再完成演員一的表演,再完成演員二的表演,最后完成主持人的總結(jié)。而如果用面向?qū)ο蟮乃枷雭?lái)分析,就應(yīng)該是這樣的。這個(gè)演出由兩大部分組成:主持人、演員。與主持人相關(guān)的:開(kāi)場(chǎng)、總結(jié)。與演員相關(guān)的:演員編號(hào)、所演的節(jié)目。然后這臺(tái)演出就可以這樣策劃:需要一個(gè)主持人a,需要兩個(gè)演員b、c。演出的事情可以表示為:a的開(kāi)場(chǎng)——>b、c的編號(hào)和節(jié)目——>a的總結(jié)。???????面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別示例之下棋????面向過(guò)程就是分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。面向?qū)ο笫前褬?gòu)成問(wèn)題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)
4、象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問(wèn)題的步驟中的行為。 例如五子棋,面向過(guò)程的設(shè)計(jì)思路就是首先分析問(wèn)題的步驟: 1、開(kāi)始游戲, 2、黑子先走, 3、繪制畫(huà)面, 4、判斷輸贏, 5、輪到白子, 6、繪制畫(huà)面, 7、判斷輸贏, 8、返回步驟2, 9、輸出最后結(jié)果?! “焉厦婷總€(gè)步驟用分別的函數(shù)來(lái)實(shí)現(xiàn),問(wèn)題就解決了。?? 而面向?qū)ο蟮脑O(shè)計(jì)則是從另外的思路來(lái)解決問(wèn)題。整個(gè)五子棋可以分為: 1、黑白雙方,這兩方的行為是一模一樣的, 2、棋盤(pán)系統(tǒng),負(fù)責(zé)繪制畫(huà)面, 3、規(guī)則系統(tǒng),負(fù)責(zé)判定諸如犯規(guī)、輸贏等。 第一類對(duì)象
5、(玩家對(duì)象)負(fù)責(zé)接受用戶輸入,并告知第二類對(duì)象(棋盤(pán)對(duì)象)棋子布局的變化,棋盤(pán)對(duì)象接收到了棋子的變化就要負(fù)責(zé)在屏幕上面顯示出這種變化,同時(shí)利用第三類對(duì)象(規(guī)則系統(tǒng))來(lái)對(duì)棋局進(jìn)行判定。 可以明顯地看出,面向?qū)ο笫且怨δ軄?lái)劃分問(wèn)題,而不是步驟。同樣是繪制棋局,這樣的行為在面向過(guò)程的設(shè)計(jì)中分散在了許多步驟中,很可能出現(xiàn)不同的繪制版本,因?yàn)橥ǔTO(shè)計(jì)人員會(huì)考慮到實(shí)際情況進(jìn)行各種各樣的簡(jiǎn)化。而面向?qū)ο蟮脑O(shè)計(jì)中,繪圖只可能在棋盤(pán)對(duì)象中出現(xiàn),從而保證了繪圖的統(tǒng)一?! 」δ苌系慕y(tǒng)一保證了面向?qū)ο笤O(shè)計(jì)的可擴(kuò)展性。比如我要加入悔棋的功能,如果要改動(dòng)面向過(guò)程的設(shè)計(jì),那么從輸入到判斷到顯示這一連串的步驟都
6、要改動(dòng),甚至步驟之間的順序都要進(jìn)行大規(guī)模調(diào)整。如果是面向?qū)ο蟮脑挘挥酶膭?dòng)棋盤(pán)對(duì)象就行了,棋盤(pán)系統(tǒng)保存了黑白雙方的棋譜,簡(jiǎn)單回溯就可以了,而顯示和規(guī)則判斷則不用顧及,同時(shí)整個(gè)對(duì)對(duì)象功能的調(diào)用順序都沒(méi)有變化,改動(dòng)只是局部的。 到這里就可以很明顯的看出面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別所在了。