<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦>知識大全>知識百科>公共基礎知識>

        編程中面向過程和面向對象的區別

        時間: 映芳735 分享

          面向過程程序設計和對面對象程序設計都是程序設計的方法,這兩者有什么區別呢,下面小編來告訴你面向過程和面向對象這兩者方法的區別。

          面對過程和面對對象的區別

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

          面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。

          例如五子棋,面向過程的設計思路就是首先分析問題的步驟:

          1、開始游戲

          2、黑子先走

          3、繪制畫面

          4、判斷輸贏

          5、輪到白子

          6、繪制畫面

          7、判斷輸贏

          8、返回步驟2

          9、輸出最后結果

          把上面每個步驟用分別的函數來實現,問題就解決了。

          面向對象的設計則是從另外的思路來解決問題。整個五子棋可以分為

          1、黑白雙方,這兩方的行為是一模一樣的,

          2、棋盤系統,負責繪制畫面

          3、規則系統,負責判定諸如犯規、輸贏等。

          第一類對象(玩家對象)負責接受用戶輸入,并告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的i變化就要負責在屏幕上面顯示出這種變化,同時利用第三類對象(規則系統)來對棋局進行判定。

          可以明顯地看出,面向對象是以功能來劃分問題,而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設計中分散在了總多步驟中,很可能出現不同的繪制版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而面向對象的設計中,繪圖只可能在棋盤對象中出現,從而保證了繪圖的統一。

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

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

          當然,要達到改動只是局部的需要設計的人有足夠的經驗,使用對象不能保證你的程序就是面向對象,初學者或者很蹩腳的程序員很可能以面向對象之虛而行面向過程之實,這樣設計出來的所謂面向對象的程序很難有良好的可移植性和可擴展性。

          小編推薦:

          1、面向對象相對面向過程的優點

          1) 結構清晰。使人們的編程與實際的世界更加接近,所有的對象被賦予屬性和方法,結果編程就更加富有人性化。

          2) 封裝性。減小外部對內部的影響。封裝將對象有關的數據和行為封裝成整體來處理,使得對象以外的部分不能隨意存取對象的內部屬性,從而有效地避免了外部錯誤對它的影響,大大減小了查錯和排錯的難度。

          3) 容易擴展,代碼重用率高。容易擴展,在大框架不變的情況下很容易就開發出適合自己的功能,實現簡單,可有效地減少程序的維護工作量,軟件開發效率高。

          2、面向對象相對面向過程的缺點

          1) 增加工作量。如果一味地強調封裝,當進行修改對象內部時,對象的任何屬性都不允許外部直接存取,則要增加許多沒有其他意義、只負責讀或寫的行為。這會為編程工作增加負擔,增加運行開銷,并且使程序顯得臃腫。

          2) 性能低。由于面向更高的邏輯抽象層,使得面向對象在實現的時候,不得不做出性能上面的犧牲,計算時間和空間存儲大小的都開銷很大。

        533991 主站蜘蛛池模板: 亚洲精品综合一区二区在线| 国产精品久久久久久久久久免费| 国产精品亚洲аv无码播放 | 激情综合网激情五月激情| 亚洲成熟女人av在线观看| WWW夜插内射视频网站| 强伦人妻一区二区三区视频18| 俄罗斯xxxx性全过程| 丁香亚洲综合五月天婷婷| 国产白袜脚足j棉袜在线观看| 吉川爱美一区二区三区视频 | 全免费A级毛片免费看无码| 成人特黄特色毛片免费看| 欧美成人看片一区二区| 九色91精品最新在线| 不卡国产一区二区三区| 自拍偷自拍亚洲一区二区| 亚洲av网一区天堂福利| 国产午夜一区二区在线观看| 日韩精品一区二区三区无| 国产免费一区二区不卡| 伊人久久大香线蕉aⅴ色| 一出一进一爽一粗一大视频| 在线中文一区字幕对白| 成人片99久久精品国产桃花岛| 少妇久久久被弄到高潮| 日韩精品国产中文字幕| 日韩精品中文字幕有码| 国语自产精品视频在线看| 家庭乱码伦区中文字幕在线| 日韩人妻精品中文字幕| 一区二区三区av天堂| 国内精品国产成人国产三级| 性欧美video高清| 一本久久a久久精品综合| 亚洲av乱码久久亚洲精品| 成人拍拍拍无遮挡免费视频| 国产精品久久久久久久久软件| 久久国产热精品波多野结衣av| 亚洲成av人片色午夜乱码| 亚洲熟妇自偷自拍另亚洲|