程序导向与物件导向.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序導向與物件導向 程序導向設計(procedure-oriented) 軟體系統的發展方式是考慮此系統所要完成的『功能』甚麼? 要完成這樣的功能需要採取哪些『動作』? 這些動作需要循著怎樣的『程序 』來進行? 系統的架構是建立在所要處理的功能上,根據功能來劃分系統裡的各個模組。 物件導向設計(Objected-Oriented) 以系統所要處理的『物件』或是『資料』作為考慮系統架構的出發點。 先從抽象的層面來分析要處理『類別』(class)的資料? 各種類別的資料會以哪些『方法』(method) 來操作? 整個系統是以各個封裝良好的物件模組架構起來的,每一個物件模組就是一個類別定義,它包含有一組私有的資料結構,以及開放給外界用來操作這組資料的一群方法。 甚麼是物件導向程式設計? 初步定義: 物件導向程式設計就是在設計系統時將系統的架構建構在每一個系統或子系統所要操作的『物件』上,而不是建構在系統所要完成的『功能』上的設計方式。 不要先問系統要作到什麼功能;先問有哪些東西可以讓系統做到這些功能! 如何建構以物件為基礎的系統 如何找出物件來? 如何描述物件? 如何描述物件彼此之間的關聯性與共通性? 如何使用物件來建構系統? 物件導向的歷史回顧 OO 的實際發展始於 1966 年。 當時 Kisten Nygaard 和 Ole-Johan Dahl 開發了具有更高層級抽象機制的 Simula 語言。 Simula 提供了較副程式更高一級的抽象和封裝;爲了模仿一個實際問題,引入了資料抽象和類別的概念。 Smalltalk Alan Kay 1972年PARC發佈了Smalltalk的第一個版本 。 『物件導向』這一術語正式確定。 Smalltalk被認爲是第一個真正物件導向的語言。 Smalltalk 的目標是爲了使軟體設計能夠盡可能以自動化的單元來進行。 在 Smalltalk 中運作的一切都是物件-----即是某個類別的實例。 Smalltalk-80 Smalltalk-80 是 PARC 一系列 Smalltalk 版本的總結。 早期Smalltalk關於開發環境的研究導致了後來的一系列進展: 視窗(window),圖示(icon),滑鼠(mouse)和下拉式window環境。 Smalltalk語言還影響了 80 年代早期和中期的物件導向的語言,如:Object-C(1986)、 C++(1986)、 Self(1987)、Eiffl(1987)、Flavors(1986), 1990年代 物件導向的分析、測試、度量和管理等研究都得到長足發展。 目前物件技術的先進課題包括 設計模式(design patterns) 分散式物件系統和 以網路為基礎的物件應用等。 Why 物件導向? 人們希望它像以前其他軟體發展的技術一樣,能夠滿足軟體發展對於生産效率、可靠性、易維護性、易管理等方面,具有更高、更快、更強的迫切需求。 Why OO 物件導向的開發強調從問題領域的概念到軟體程式和介面的直接映射; 心理學的研究也表明,把客觀世界看成是許多物件,將更接近人類的自然思維方式。 物件比函數更爲穩定;軟體需求的變動往往是功能相關的變動,而其功能的執行者----物件----通常不會有大的變動。 物件導向的開發也支援、鼓勵軟體工程實踐中的資訊隱藏、資料抽象化和封裝。在一個物件內部所進行任何的修改是被隔離在局部,因此物件導向開發的軟體就易於修改、擴充和維護。 WHY OO 物件導向也被擴充應用於軟體生命周期的各個階段---從分析到編寫程式碼。 物件導向的方法自然而然地支援快速原型開發方法和 RAD (Rapid Application Development)。 物件導向的開發鼓勵重覆使用,不僅軟體的重覆使用,還包括分析、設計的模型的重覆使用。 OO技術還方便了軟體的互換性,即是網路中一個節點上的應用,能夠利用另一個節點上的資源。 Why OO? 物件導向的開發還支援並行、層次和複雜等一些在目前的軟體系統中常見的現象。 物件導向塑模不僅僅是新的程式語言的匯總,它也是一種新的思維方式,一種關於計算和資訊結構化的新思維。 物件導向的Model,把系統看做是相互協作的物件,這些物件是結構和行爲的封裝,都屬於某個類別,那些類別具有某種層次化的結構,系統的所有功能透過物件之間相互發送訊息來獲取。 物件導向的Model可以視爲是一個包含以下元素的概念框架:抽象化、封裝、模組化、層次、分類、並行、穩定、可重覆使用和可擴展性。 物件導向程式編輯概念 在物件導向編程中,程式被看作是相互協作的物件集合,每個物件都是某個類別的實例,所有的類別構成一個透過繼承關係相聯繫的層次結構。 物件導向的語言常常具有以下特徵: 物件建構的功能、 訊息傳遞機

文档评论(0)

3344483cc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档