面向對象基礎(概念,優勢)

一,爲何要面向對象程序員

      在面向對象出現之前,結構化程序設計是程序設計的主流,又稱爲面向過程的程序設計。算法

    1,面向過程編程

    在面向過程的程序設計中,問題被看作一系列須要完成的任務,如讀,計算和打印等,許多函數用於完成這些任務。其中函數式面向過程的,即它關注如何根據規定的條件完成指定的任務。面向過程至關於又函數堆積,互相調用的程序。安全

   2,面向過程的開發方法,通常存在以下問題:數據結構

    2.1,軟件的重用性差函數

        之前寫程序,是否常常會看到有實現相同功能的代碼處處進行復制、黏貼的狀況?存在很大的冗餘,軟件重用性比較差。重用性:指同一事物不經修改或稍加修改就可屢次重複試用的性質。  測試

        軟件重用性是軟件工程追求的目標之一。網站

    2.2  軟件可維護性差設計

         在軟件開發過程當中,軟件的可讀性、可修改性和可測試性是軟件的重要質量指標。實踐證實:面向過程開發出來的軟件,維護時期費用和成本仍然很高,其緣由是可修改性差,維護困難,       致使可維護性差。對象

    2.3,開發出的軟件不能知足用戶的需求變化 

        用結構化方法開發的軟件,其穩定性、可修改性和可重用性都比較差,這是由於結構化方法的本質是功能分解,功能分解:把問題總體功能的單個處理着手,自頂向下不斷把複雜問題分解爲子處理,這樣一層一層地分解下去,直到僅剩下若干個容易實現的子處理功能爲止。所以,結構化方法是圍繞實現處理功能的「過程」來構造系統的,而用戶需求的變化大部分是針對功能的,用戶需求的變化每每形成系統結構的較大變化。

   3,爲何要用面向對象

    面向對象把數據當作程序開發中的基本元素,而且不許它們在系統中自由流動。,並保護這些數據不會被外界的函數意外的改變。

    面向對象將問題分解爲一系列實體,這些實體被稱爲對象,而後圍繞這些實體創建數據和函數。面向對象等於把無生命的過程化東西(數據和函數)變成活生生的事物(對象)來看待,更接近現     實世界。創建對象的目的不是完成一個步驟,而是描述某個事物在整個解決問題的步驟中的行爲。面向對象過程就是用類一個個地構造出對象來,在主程序裏調用的是一個個對象的行爲。 

    程序 = 數據結構 + 算法,那麼面向對象的理解更相似於:程序 = 對象 + 對象

   4,面向對象的優勢

     4.1,更好地適應需求變化,應對變化上。

     4.2,具備更好的重用性

        軟件的重用性是提升軟件開發生產率和目標系統質量的重要途徑。

        面向對象的重用性體如今:

         4.21,代碼重用

           經過繼承,咱們能夠大幅減小多餘的代碼,並擴展示有代碼的用途

        4.22,設計結果的重用

            指的是重用某個軟件系統的設計模型,有助於把一個應用系統移植到徹底不一樣的軟/硬平臺上

        4.23,分析結果重用

           重用某個系統的分析模型,這種重用特別適用於用戶需求未改變,但系統結構發生根本變化的場合

     4.3,更易於維護

         因爲適用面向對象思想設計的結構,可讀性高,因爲繼承的存在,即便改變需求,維護也只是針對局部模塊,因此維護起來很是方便和低成本

     4.4,更易於擴展

         因爲繼承,封裝,多態的特性,能夠設計出高內聚、低耦合的系統結構,使得系統更靈活、更容易擴展,並且成本較低。基於面向對象的系統也更容易從小到大逐步升級

     4.4,更安全

        數據隱藏的概念幫助程序員們保護程序免受外部代碼的侵襲,容許一個對象的多個實例同時存在,並且彼此間不會相互干擾

5,什麼是面向對象

    什麼是對象,對象時世界中的物體在人腦中的映像。從系統的角度去理解就是問題域或實現域中某些事物的一個抽象,它反映它反映此事物在系統中須要保存的信息和發揮的做用。

    萬物皆對象,一棵樹、一我的、一個公司均可以說是一個對象。(同類,這個概念很重要)在軟件開發中對象是創建面向對象程序所依賴的基本單元,專業來講,對象就是一種代碼

    的實例,這種代碼執行特定的功能。

    好比開發一個段子商務網站,與電子商務有關的都是咱們要操做和關心的,例如商品,訂單,用戶,目錄,購物車等都是對象。若是要開發一個論壇,那麼論壇中必備的要素,如論

    壇分類、主題、帖子、評論、用戶等也全都是對象。

    面向對象指的就是解決問題的一種方法。在面對比較複雜的系統時,咱們能夠將它做爲一個對象來進行分析。一個系統(解決方案)做爲一個對象,能夠由多個部分組成。一樣,這個對象

    也能夠由多個對象組成。同類的事物能夠由一個對象來表示。

    5.1 面向對象又分面向對象的分析,面向對象的設計,面向對象的編程

        5.11,面向對象分析(OOA)

               是一種分析方法,它以在問題域的詞彙表中找到的類和對象的觀點來審視需求。

        5.12,面向對象設計 (OOD)

        5.13,面向對象編程 (OOP)

      6,面向對象能夠理解爲"以對象爲核心" 或"從對象的角度" 來考慮問題  

相關文章
相關標籤/搜索