面向?qū)ο?amp;面向過程

?面向過程

面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調(diào)用就可以了。

?面向?qū)ο?/h2>

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

例如五子棋,面向過程的設(shè)計思路就是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9、輸出最后結(jié)果。把上面每個步驟用分別的函數(shù)來實現(xiàn),問題就解決了。

而面向?qū)ο蟮脑O(shè)計則是從另外的思路來解決問題。整個五子棋可以分為 1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統(tǒng),負責繪制畫面,3、規(guī)則系統(tǒng),負責判定諸如犯規(guī)、輸贏等。第一類對象(玩家對象)負責接受用戶輸入,并告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的i變化就要負責在屏幕上面顯示出這種變化,同時利用第三類對象(規(guī)則系統(tǒng))來對棋局進行判定。

可以明顯地看出,面向?qū)ο笫且怨δ軄韯澐謫栴},而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設(shè)計中分散在了總多步驟中,很可能出現(xiàn)不同的繪制版本,因為通常設(shè)計人員會考慮到實際情況進行各種各樣的簡化。而面向?qū)ο蟮脑O(shè)計中,繪圖只可能在棋盤對象中出現(xiàn),從而保證了繪圖的統(tǒng)一。

功能上的統(tǒng)一保證了面向?qū)ο笤O(shè)計的可擴展性。比如我要加入悔棋的功能,如果要改動面向過程的設(shè)計,那么從輸入到判斷到顯示這一連串的步驟都要改動,甚至步驟之間的循序都要進行大規(guī)模調(diào)整。如果是面向?qū)ο蟮脑?,只用改動棋盤對象就行了,棋盤系統(tǒng)保存了黑白雙方的棋譜,簡單回溯就可以了,而顯示和規(guī)則判斷則不用顧及,同時整個對對象功能的調(diào)用順序都沒有變化,改動只是局部的。

再比如我要把這個五子棋游戲改為圍棋游戲,如果你是面向過程設(shè)計,那么五子棋的規(guī)則就分布在了你的程序的每一個角落,要改動還不如重寫。但是如果你當初就是面向?qū)ο蟮脑O(shè)計,那么你只用改動規(guī)則對象就可以了,五子棋和圍棋的區(qū)別不就是規(guī)則嗎?(當然棋盤大小好像也不一樣,但是你會覺得這是一個難題嗎?直接在棋盤對象中進行一番小改動就可以了。)而下棋的大致步驟從面向?qū)ο蟮慕嵌葋砜礇]有任何變化。

當然,要達到改動只是局部的需要設(shè)計的人有足夠的經(jīng)驗,使用對象不能保證你的程序就是面向?qū)ο?,初學者或者很蹩腳的程序員很可能以面向?qū)ο笾摱忻嫦蜻^程之實,這樣設(shè)計出來的所謂面向?qū)ο蟮某绦蚝茈y有良好的可移植性和可擴展性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 解放勞動力的是面向?qū)ο蟆?舉一個栗子:比如今天你需要做一道菜,做菜的材料可能是要到菜市場一條魚,青椒少許,蔥姜蒜等...
    easy_tiny閱讀 224評論 0 1
  • 以下是我個人對面向?qū)ο蠛兔嫦蜻^程的理解和看法: 面向?qū)ο蠛兔嫦蜻^程是兩種不同的編程思想,是兩種不同的跟計算機溝通的...
    Manegga閱讀 491評論 0 1
  • 眾所周知,Java是一種面向?qū)ο笮缘恼Z言。那么面向?qū)ο笥质鞘裁茨??和面向過程有什么區(qū)別?下面就和大家分析下面向?qū)ο?..
    MarcoHorse閱讀 3,980評論 1 16
  • 一個晚上,與小伙伴打球?qū)W習兩不誤,有份酣暢淋漓,有份努力過后的踏實,內(nèi)心滿滿的寧靜。 這種感覺,和七八年前考研的時...
    tina2016閱讀 357評論 0 1
  • 10個免費的HTML5視頻轉(zhuǎn)換工具下載,搜過一些工具,跟此文的工具都差不多。然后下載了好幾款試用了一下,最后比較滿...
    靈籟閱讀 3,065評論 2 1

友情鏈接更多精彩內(nèi)容