<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      全網最適合入門的面向對象編程教程:00 面向對象設計方法導論

      全網最適合入門的面向對象編程教程:00 面向對象設計方法導論

      1.1 面向過程編程與面向對象編程 OOP

      在嵌入式開發中,我們往往使用 C 語言進行編程,將待完成的問題看作一系列需要完成的任務,函數則用于完成這些任務,解決問題的焦點集中于函數,這就是所謂的面向過程編程。

      與之相對的是面向對象編程,它把對象作為程序的基本單元,一個對象包含了數據和操作數據的函數,相同屬性和操作方法的對象被抽象為類。以在工業制造上,使用模具來鑄造機殼和零件為例,類就是模具,而對象就是使用模具生產出的零件,即類的實例。

      以把大象裝進冰箱為例,二者區別如下圖所示:

      image

      1.2 軟件危機與 OOP 思想的提出

      **“史前時期最駭人的景象,莫過于一群巨獸在焦油坑里做垂死前的掙扎。不妨閉上眼睛想像一下,你看到了一群恐龍、長毛象、劍齒虎正在奮力掙脫焦油的束縛,但越掙扎,焦油就纏得越緊,就算他再強壯、再厲害,最后,都難逃滅頂的命運。過去十年間,大型系統的軟件開發工作就像是掉進了焦油坑里…… ” **
      ——佛瑞德·布魯克斯

      早期的編程語言,如匯編語言、只有 0 和 1 的機器語言,本質上是面向機器編程。他們開始認為編程的設計應該符合人類習慣和邏輯思維的語句,如 add 用于加法運算、sub 用于除法運算、cmp 用于比較兩個數的大小。

      但 CPU 指令集(匯編語言)還是比較抽象,人們有了一個自然的需求,能不能按照人容易理解的思維寫程序后把寫出來的程序自動翻譯成機器語言呢?后來,計算機科學家們發現所有程序可以化為三種結構構成:順序結構、分支結構和循環結構。

      Fortran、C 等所謂的高級編程語言便應運而生,這樣的語言關注邏輯處理過程,在面對編程問題時,往往采用結構化范型來完成軟件開發,人們將軟件的生存周期分為需求分析、總體設計、詳細設計、編程和測試幾個階段,強調系統的模塊結構,以及模塊的劃分,模塊間的數據傳送及調用關系。

      然而隨著軟件需求的快速增長,面向過程的設計方法使得大型軟件更容易被設計成面條式程序,長長的過程調用執行,像一根面條。大型項目最后由這樣一根一根面條組成,就成了一個毛線團,變得難以維護和修改。

      image

      1968 年,北大西洋公約組織(NATO)在聯邦德國的國際學術會議創造軟件危機(Software crisis)一詞。而 1960 年代中期開始爆發眾所周知的軟件危機,為了解決問題,在 1968、1969 年連續召開兩次著名的 NATO 會議,并同時提出軟件工程的概念。1972 年,艾茲赫爾·戴克斯特拉于計算機協會圖靈獎的演講:

      軟件危機的主要原因,把它很不客氣地說:在沒有機器的時候,編程根本不是問題;當我們有了計算機,編程開始變成問題;而現在我們有巨大的計算機,編程就成為了一個同樣巨大的問題。
      —艾茲赫爾·戴克斯特拉,《Communications of the ACM》

      image

      軟件危機使人們認識到中大型軟件系統與小型軟件有著本質性差異:

      • 大型軟件系統開發周期長、費用昂貴、軟件質量難以保證、生產率低,它們的復雜性已遠超出人腦能直接控制的程度;
      • 大型軟件系統不能沿襲工作室的開發方式,就像制造小木船的方法不能生產航空母艦一樣。
        image

      軟件的存在已經有數十年的歷史了,一直到了 1980 年代的面向對象技術才解決了一部分在軟件危機上的窘境。人們開始重新審視軟件編程這件事情的本質,除了一部分科學計算或者其他特定目的的軟件,大部分的軟件是為了解決現實世界的問題,企業的庫存管理、銀行的賬務處理等等。所以,軟件編程的本質是程序員用代碼的方式使現實世界的事務運行在計算機上,計算機軟件是為了解決現實世界的問題而開發出來的,那么軟件編程這件事情應該關注的重點是客觀世界的事物本身,而不是程序員的思維方式或者計算機的指令。

      如果軟件編程的重點是客觀世界的事物本身,那么編程語言如何才能更好地滿足這一需求?面向對象編程應運而生,它提出一切皆對象,客觀世界的用戶、賬號、商品是對象;創建、組合、關聯這些對象的工廠、適配器、觀察者也是對象;將所有這些對象分析、設計、開發出來,一個軟件系統就完成了,這個軟件系統靈活、強大,最重要的是可以根據需求變化快速更新維護。

      1.3 面向對象方法學

      面向對象方法學是一種把面向對象的思想應用于軟件開發過程中,指導開發活動的系統方法,是建立在“對象”概念基礎上的方法學。對于面向對象方法學,它把軟件開發分為分析、設計和編程三個不同階段。

      1.3.1 面向對象分析(OOA)

      OOA 面向對象分析方法指的是在一個系統的開發過程中進行了系統業務調查以后,按照面向對象的思想來分析問題,并確定所需的對象及對象之間的交互關系。分析階段關注的是需要完成什么,分析階段的輸出是一系列需求。

      1.3.2 面向對象設計(OOD)

      面向對象設計(OOD)就是在 OOA 模型的基礎上運用面向對象方法進行系統設計,是將這些需求轉化為實現方案的過程。設計者必須命名對象,定義其行為,指定哪些對象可以針對其他對象實施指定的行為。設計階段關注的是如何完成。設計階段的輸出是實現方案。

      1.3.3 面向對象編程(OOP)

      面向對象編程(OOP)是將完美定義的設計轉化為可以運行程序的過程,即用具體的數據結構來定義對象的屬性,用具體的語句來實現服務流程圖所表示的算法。OOP 階段產生的程序能夠緊密地對應 OOD 模型。

      image

      文檔獲取

      可訪問如下鏈接進行對文檔下載:

      https://github.com/leezisheng/Doc

      image
      本文檔主要介紹如何使用 Python 進行面向對象編程,需要讀者對 Python 語法和單片機開發具有基本了解。相比其他講解 Python 面向對象編程的博客或書籍而言,本文檔更加詳細、側重于嵌入式上位機應用,以上位機和下位機的常見串口數據收發、數據處理、動態圖繪制等為應用實例,同時使用 Sourcetrail代碼軟件對代碼進行可視化閱讀便于讀者理解。

      關于文檔的更多介紹可看:
      學嵌入式的你,還不會面向對象??!

      相關示例代碼獲取鏈接如下:

      https://github.com/leezisheng/Python-OOP-Demo

      image

      image

      posted @ 2024-06-24 00:50  FreakStudio  閱讀(389)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 又爽又黄又无遮掩的免费视频| 国产无套内射又大又猛又粗又爽 | 四虎库影成人在线播放| 中文字幕日韩精品国产| 男女猛烈激情xx00免费视频| 色狠狠色噜噜AV一区| 久久精品国产亚洲av亚| 本免费Av无码专区一区| 国产日产亚洲系列av| free性开放小少妇| 国产精品白丝久久AV网站| 美女胸18大禁视频网站| 亚洲精品一区二区三区小| 99久久激情国产精品| 野花社区www视频日本| gogo无码大胆啪啪艺术| 真人无码作爱免费视频| 2021亚洲va在线va天堂va国产| 无码人妻一区二区三区四区AV| 国产午夜一区二区在线观看| 日韩国产成人精品视频| 亚洲国产日韩欧美一区二区三区| 亚洲国产中文字幕在线视频综合| 精品国产一区二区色老头| 亚洲另类激情专区小说图片| 日本妇人成熟免费| 国产日韩av一区二区在线| 国产中文99视频在线观看| 欧美视频二区欧美影视| 无码精品人妻一区二区三区中| 久久国产精品伊人青青草| 国产成人午夜精品福利| 亚洲欧美日韩成人一区| 久久久久青草线蕉亚洲| 亚洲人午夜精品射精日韩| 伊人成人在线视频免费| 人妻 日韩精品 中文字幕| 亚洲精品一区二区18禁| 色综合中文综合网| 国产精品一区二区不卡视频| 日韩在线观看精品亚洲|