日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编程思想:面向对象和面向过程

發布時間:2024/7/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程思想:面向对象和面向过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

何謂面向對象?何謂面向過程?對于這編程界的兩大思想,一直貫穿在我們學習和工作當中。我們知道面向過程和面向對象,但要讓我們講出來個所以然,又感覺是不知從何說起,最后可能也只會說出一句就是那樣啦,你知道啦。而這種茫然,其實就是對這兩大編程思想的迷糊之處。本文通過學生到校報道注冊的實例,闡述了面向過程和面向對象兩大思想。希望能對你的學習和工作有所幫助。

一、面向過程

  首先我們來認識下,什么是面向過程?如果咬文嚼字的話可以這樣來理解,面向過程就是面向解決問題的過程進行編程。仔細思考一下,我們在學習和工作中,當我們去實現某項功能或完成某項任務時,是不是會不自覺的按部就班的羅列出我們要做的事情?(如果沒有,建議以后試著步驟化解決問題)。而當我們按著我們羅列的步驟去解決問題時,實質上就是按照面向過程的思想去解決問題。我們羅列的步驟就是過程,按照步驟解決問題就是面向過程。

  傳統的面向過程的編程思想總結起來就八個字——自頂向下,逐步細化!實現步驟如下:

  • 將要實現的功能描述為一個從開始到結束按部就班的連續的步驟(過程);
  • 依次逐步完成這些步驟,如果某一步的難度較大,又可以將該步驟再次細化為若干個子步驟,以此類推,一直到結束得到想要的結果;
  • 程序的主體是函數,一個函數就是一個封裝起來的模塊,可以實現一定的功能,各個子步驟往往就是通過各個函數來完成的,從而實現代碼的重用和模塊化編程!
  • 案例:學生到校報道注冊

    面向過程流程圖:

    面向過程,就是按照我們分析好了的步驟,按部就班的依次執行就行了!所以當我們用面向過程的思想去編程或解決問題時,首先一定要把詳細的實現過程弄清楚。一旦過程設計清楚,代碼的實現簡直輕而易舉。

    二、面向對象

      討論完了面向過程,我們再來認識下面向對象。所謂的面向對象,就是在編程的時候盡可能的去模擬真實的現實世界,按照現實世界中的邏輯去處理一個問題,分析問題中參與其中的有哪些實體,這些實體應該有什么屬性和方法,我們如何通過調用這些實體的屬性和方法去解決問題。

    現實世界中,任何一個操作或者是業務邏輯的實現都需要一個實體來完成,也就是說,實體就是動作的支配者,沒有實體,就肯定沒有動作發生!

      現在讓我們思考下,上述注冊報名的每一個步驟都有哪些動詞?

      提出 提供 繳 收 獲得 分配 增加

      有動詞就一定有實現這個動作的實體!

      所謂的模擬現實世界,就是使計算機的編程語言在解決相關業務邏輯的方式,與真實的業務邏輯的發生保持一致!需要使每一個動作的背后都一個完成這個動作的實體!

      因為任何功能的實現都是依賴于一個具體的實體的“動作|操作|行動”可以看作是一個又一個的實體在發揮其各自的“能力”并在內部進行協調有序的調用過程!

      當采用面向對象的思想解決問題時,可分為下面幾步:

  • 分析哪些動作是由哪些實體發出的;
  • 定義這些實體,為其增加相應的屬性和功能;
  • 讓實體去執行相應的功能或動作。
  •   采用面向對象的思想,解決上面的報名問題,應該如下:

    第一步:分析那些動作是由哪些實體發出的

    • 學生提出報名
    • 學生繳費
    • 機構收費
    • 教師分配教室
    • 班級增加學生信息

      于是,在整個過程中,一共有四個實體:

      學生、機構、教師、班級!

      在現實中的一個具體的實體,就是計算機編程中的一個對象!

    第二步:定義這些實體,為其增加相應的屬性和功能

      屬性就是實體在現實世界中的一些特征表現。如:

      • 人的屬性:姓名、性別、身高、三圍、體重、電話號碼、家庭住址、籍貫等
      • 手機的屬性:品牌、價格、顏色、尺寸、待機時間等

      功能就是能完成的動作,在面向對象的術語中,動作就叫作方法或者函數。如:

      • 人的動作(功能):吃飯、睡覺、學習、打游戲、走路、跑步、繳費!
      • 手機的動作(功能):打電話、發短信、拍照、打游戲、視頻、看電影等

      下圖顯示了在上述實例中出現的實體以及相應的屬性和功能:

    第三步:讓實體去執行相應的功能或動作

    • 學生提出報名
    • 學生繳費
    • 學校收費
    • 教師分配教室
    • 班級增加學生信息

      所以說,面向過程主要是針對功能,而面向對象主要是針對能夠實現該功能的背后的實體。面向對象實質上就是面向實體,所以當我們使用面向對象進行編程時,一定要建立這樣一個觀念:萬物皆對象!

    三、面向對象和面向過程的比較

      在我們將面向過程和面向對象討論完后,會明顯的感覺兩者之間有著很大的區別。面向過程簡單直接,易于入門理解,模塊化程度較低。而面向對象相對于面向過程較為復雜,不易理解,模塊化程度較高。可總結為下面三點:

  • 都可以實現代碼重用和模塊化編程,但是面對對象的模塊化更深,數據更封閉,也更安全!因為面向對象的封裝性更強!
  • 面對對象的思維方式更加貼近于現實生活,更容易解決大型的復雜的業務邏輯
  • 從前期開發角度上來看,面對對象遠比面向過程要復雜,但是從維護和擴展功能的角度上來看,面對對象遠比面向過程要簡單!
  •   如何選擇面向對象還是面向過程,對于一個有著豐富開發經驗的老手來說,這是個得心應手的過程。而對于一個新手而言,其實從兩者的對比就可以看出,當我們的業務邏輯比較簡單時,使用面向過程能更快的實現。但是當我們的業務邏輯比較復雜時,為了將來的維護和擴展,還是面向對象更為靠譜點!當然,當我們被經理催著上交項目時,不要再選擇糾結了,哪個能讓你更快的完成項目就用哪個吧!

    四、通俗易懂地舉例說明“面向對象”和“面向過程”有什么區別?

    如何大象裝進冰箱?

    面向過程:
    為了把大象裝進冰箱,需要3個過程。
    1) 把冰箱門打開(得到打開門的冰箱)
    2) 把大象裝進去(打開門后,得到里面裝著大象的冰箱)
    3) 把冰箱門關上(打開門、裝好大象后,獲得關好門的冰箱)
    每個過程有一個階段性的目標,依次完成這些過程,就能把大象裝進冰箱。

    1:
    冰箱開門(冰箱)
    冰箱裝進(冰箱, 大象)
    冰箱關門(冰箱)
    ==換個寫法
    (冰箱開門 冰箱)
    (冰箱裝進 冰箱 大象)
    (冰箱關門 冰箱)

    2:
    冰箱關門(冰箱裝進(冰箱開門(冰箱), 大象))
    ==換個寫法
    (冰箱關門 (冰箱裝進 (冰箱開門 冰箱) 大象))

    面向對象:
    為了把大象裝進冰箱,需要做三個動作(或者叫行為)。
    每個動作有一個執行者,它就是對象。
    1) 冰箱,你給我把門打開
    2) 冰箱,你給我把大象裝進去(或者說,大象,你給我鉆到冰箱里去)
    3) 冰箱,你給我把門關上
    依次做這些動作,就能把大象裝進冰箱。

    1:
    冰箱.開門()
    冰箱.裝進(大象)
    冰箱.關門()

    2:
    冰箱.開門().裝進(大象).關門()


    總結

    以上是生活随笔為你收集整理的编程思想:面向对象和面向过程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。