面向對象的哲學思考_第1頁
面向對象的哲學思考_第2頁
面向對象的哲學思考_第3頁
面向對象的哲學思考_第4頁
面向對象的哲學思考_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

?妾:軟件開發技采的發黒經歷了結構化穆序設計到面向對象枝術發展的過稔面向對象技術作為一種新的技木逐漸取代結構化穆序設計方法具有其必魁生,其之所嘆能夠得到極大的發展與其深層的哲朵義瘤著天然的聯系;一個程序的好壞,它的容錯能力的強弱,嘆及蘇的可實現性也不酈度地依賴于穆序員的哲學觀。本文將介紹面向對象技術并探討其哲學意義。“—、面向對象技術3向對象技術的廣泛應用,反映了計算機科學發展的趨勢和需要。的發展是相互促進的,計算機科學技術的發展推動了社會的現代泛,也艮±莉寸計算機科學提出了新的要求;人們越來越希望自殖關鍵字:面向對象軟件開發哲學自然辯證法方法論3—、面向對象技術3向對象技術的廣泛應用,反映了計算機科學發展的趨勢和需要。的發展是相互促進的,計算機科學技術的發展推動了社會的現代泛,也艮±莉寸計算機科學提出了新的要求;人們越來越希望自殖■1.1結構化程序與面向對象技術卩在軟件開發過程中,計算機科學的發展與社化,計算機應用的不斷接與計算機進行交互,而不再受專門訓練后才使它。對于這一要求的滿足,夠計算領域自身的技術發展提岀了更高的要求,于是當人們開始尋求一種萸能反映人類解決問題的自然方法時「面向對象技村便產生了。“■1.1結構化程序與面向對象技術卩結構化程序設計(StructurePrograming)方法的誕生,使得程序開發者能夠編寫出比較復雜的程序,但是即使結構化編程方法、一旦某個應用系統達^一定的大小,也對它無法控制程序員就陷入源程序的汪洋大海之中。調試、修改是非常令人頭痛的韻鬲這是因為這種程序設計方法把f程序看成函數和過程的集卷、其設計思路地自頂向下層次化,逐步求精棒田化:其程序結構是按功能劃分基本模塊為樹型結構:使用局咅陵量程序,使模塊間的關系盡可自鋼單.獨立,從而可單獨驗證模塊的正確性,即所謂的模塊化。函數和進呈是程序的活動單元,數據用于傳輸。其特點是:按層次纟膨模塊」每一模塊只有一個入口一個出口,程序代碼和被處理數據分離,程序被動處理數據,而不是由數據來主動地驅動程序的執行,這就題典的“程序=數據結構+算法”理傾點。a■1.2面向對象技術的作用卩面向歹嫌的程序設計(Object—OrierctedProgranoningt是一不慚的編程方法,它汲取了結構化程序設計中的優點和長處同時將一些強有力的;念“新椿性融舍在包括對象、類、方法s消息、多態、繼承、動態連接等。實際上,,現實世界就是由對象和動作纟賊的,在00中幾乎每一個名詞就表示一類對象,它具有屬性或持征。而語法的動詞就是動作,也可粹行為。從程序員的角度看,數據是對象的特征,而過程或函數是它的行為,所以,對象是數據和程序的組臺體。a■1.2面向對象技術的作用卩傳統設計方法以功能為主進行設計,結構性強,便于設計,便于理解,?但軟件后期的修改、維護I#別是在大型軟件顯得萸為困難,而采用對象式設計有利于復甩肴利于擴充,有利于提高軟件質量,有利于加速軟件開發過程。a使用00方法,渡計人員可以依照自己的意圖?薩自己的對象,并將問題映M至該對象頭使設計人員把主宴精為放在系統它上,而對^節問題可以較面向對象設計方法追求的是現實問題空間與軟件系統解穿間的近似或直接模擬。可以這樣看7現實世界包含兩大咅盼:物質和意識,映K使用00方法,渡計人員可以依照自己的意圖?薩自己的對象,并將問題映M至該對象頭使設計人員把主宴精為放在系統它上,而對^節問題可以較面向歹嫌設計方法之所以受^當今各個方面的重視,是因為它具有許多良好的特點2模塊性:對象是一t自動機入互相之間能通過歹嫌認可的途徑進行通信廢送消息),相互沒有預料不到的影響,可以較肖自由地為各個不同的軟件系統所用;“封裝功為信息隱蔽提供具棟的菊貝手段,用戶不必清楚對象的內部細節,只要了解其功臺騎述就可以使麻a代碼共辜:繼承申攜供了一種扌鴻共辜的手段,可以避免重復的代碼設計,使得面向對象的方法確實有效;a靈活性:對象的功I緲行是在訃慮傳送時確定的,支持對象的主體將征,使得對象可以根據自身的特點進行功^痢b提鬲了程序設計的靈活性;a易維護性:對象實現了抽象和裝裝,使其中可能岀現的錯誤限第恠自身,不會向州專播,易檢錯和修改;斗増量型設計:面向對象系統可以迪過繼承機制不斷擴充功而不影響原有軟件的運行昇對象是具有封裝功能的獨立體購環境之間具有清晰的接口,它可以用干測試和存檔而脫離具體的應用,從而形成軟件單元加庫存,通過使用這種單元軟件的生產效率可以得到較大的提高。a \,而且據濟方面也優于傳統的分析可以說,面向對象程序從結福和功上都勝過千傳統程序,從傳統程序設i慨程未看,在了解其程序設計語言的語法之后嵌可以把問題求解技巧從自然語言翻譯到該不榷序語言,而使用面向對象語言系統,所做的工祚則不同了,它是基于系纟諭程序員共辜f共同的環境,并且所有程序者礎對該環境的 因此,面向對象可以裝旨斷有的程序,并建立,而且據濟方面也優于傳統的分析程序單元之間的通訊。a麻設計費用宴比傳統的分析方■13面向對象程序設計語言(OOP)u面向歹嫌的分析方法不僅可以改善軟件系統方法,它的開發周期短、省工、省時、高質、麻設計費用宴比傳統的分析方■13面向對象程序設計語言(OOP)u面向歹嫌的程序設計語言主要有:SmalltalkSOsEiffelsC++、Obje\tive-C等,它們除了具有計算機語言的F特征外,還具有其它語言所沒有的特征。這些椿征主要是數據封裝s繼承和多態性。a個能動的實體,數據封裝將一個數據和與這個數據有關的操作集舍封裝在一起。形成一個能動的實體,程師也可贈稱為歹嫌。用戶不必失瞳對象行為的實現細節,只需根據對象提供的外咅胯卜畢口訪問對象。正由刊匕,數據封裝帶有類似硬件集成電路(瓦)的特征。硬件工程師在搭硬恥電路時,不必知道集成電路芯片的功^是^何實現的,只需了解管腳功臺瀉電I#性。軟件似地在軟件中力認封斯的對象,提高軟件生產率和増強軟件的重用性。a程師也可贈繼承是面向對象語言的另一重要概念。在客觀世界中,普遍存在著一般和特殊的關系,繼承將其模型化。在面向對象的語言中,類功臺枝持了一般與楙的層次機制J除了根節點外,每個類者陪自己的父類。除了葉節點外,每個類都有自己的手類。一個子類可以從它的父尖那里繼承所有的特性和行為,即對應十語言中的數站和操作'這就擴充了它的特性和行為吃類抽象出共同特征>子類表達其差別>類的實例化就得到對象。有了類的層次結構和継承性;毎個婁的共同性質只需定義一次,用戶就可以充分利用已有的類J符合軟件重用的目標。所謂多態性,就是符號多種語義,或相同界面多種實現。讓我們考慮多態性問題的一個類比實倒:當汽車司班貓避免撞車時剎車,他關心的是快速剎車,即效果,而不關心剎車是鼓式剎車還是盤式剎車”即實現方法的細節。這里,剎車的使用與剎車的結構是分離的慨念J可能有多種結構的剎卡?它們的使用方法是相同的>相同的使用方法對應于不同種類的剎車結構。這形象地反映*多態性的思想,即相同界面對應于多種實現。面向對象語言中利用函數重載和虛函數機帯*奴擬實現了客觀世界中這種晉遍存在的多態性。1.4面向對象的#序設計面向對象的程序設討]呈要有以下三個步驟:首先是進行面向對第的分析(00A-Object-orientedAnalysis),它的主要任務是了解同題域內該同題所涉及的時象'對象間的關系和作用>即操作。然后構造該問題的對象模型,力爭這個複型能真實地因映出所要解決的實質問題。苴次是進行面向對渤岡設計(OOD-Object-OrientedDesign)?即設計軟件的對象模型。在分析的基礎上,根據所應用的面向對象軟件開發環境的功能強弱不等,對所構造的問題的對象模型作必要的改造,以最少改變原同題域內的對象模型為原則,以便在軟件系統內設計各個對象'對象間的關系,如??層次關系継承關系等,對象問的通信方式,如消息模式等,總之是設計各個對象應做些什玄進最后是面向對象的實現(OOI-OKj-ectOrientedImplementation)o所謂實現即軟件功能的實現,包括:毎個對象的內功能的實或?:確-立對象哪一些處理能力應在哪些類中進行描述;確定并實現系統的界面s輸岀的形式及其它魁制機.理等。1.5面向對象的方法學 \面向對象的方法學認為: /Is客觀世界是由各種對象組成的?任何爭物都是一乍仝I象'毎個對象都有自己質的規定性和運動變化的規律'毎個對象都屬于某個對象、類#細是該對象類的一個實例化元素。不同對象的組合及其相互作用就構成了我們要研究、分赫和構造的客觀系統2、通過分析和比較,可以發現對象間的相似性,甲掲示出不同對象的共同屬性。這就是構成對象類的根據。在按類、子類“父類等慨念構念對象類的層次關系時'如不加特殊說明'則低層對象可以自然地継承較高一層對象的屬性\3s對于已分成類的各個對象>可以通過定義一組方哇來.說明該對象的功能,也就是允許作用于該對象上的各種操作。對象間的相互聯系及其作用是遊過傳遞消息來完成的'消息就是通知對象去完成一個允許作用于該對象上的操作。至于該對象請如訶完成這個操作的細節>則是封裝在相應的對象類的定義中的?對外是隱蔽的。

二、面向對象技術的哲學意義J面向對象技術比較冥實地複擬了客觀爭物的固有結構和層次關系,符合人類認識爭物的L般規律.面向對象技術的初步成功給我們的啟示是多方面的和深刻的。首先,從哲學的角 '任何一個軟件作為智力產品,都是人們認識爭物的手段和工具,具有“方法”的性質?對象化的過程.只有當人的認識方法正確表征和順應了客觀爭物及苴過程。符合客觀世界的真實過程和規律時'這種方法的對象化“物質化才是可行的。這和物?質化的結果一一軟件,它的穩定性、通用性、重用性才是有保陞的?否則,就是不可行的。孟冋對象技術通過軟件的自然化克服軟件危機的爭實向我們昭明:以往軟件不能大量生產、不傘通用、不能重用的本質原因在于,作為方法的軟件系統中的主觀性因素太多?這就是軟件審機的深層實質。由此可見'克服軟件危機的過程,其實就是改進人們認識爭物的方法的過悝,是人的認識方法不斷客觀化、自然化、系統化的過程。 !苴次,面向對象技術的發展深化了主客件之間的關系。豐富和發展了辯證唯物主義的認識論,軟件作為人類認識爭物的方法和工月;它無疑是人和自然之間、主體和客體之間的中介。一方面>它是自然爭物即客體的模喊物,是客觀爭物過程的一定程度上的形式化和對象化;另一方面J它又是主體認識方法和息維過程的形式化,是主體思維過程的一定程度的對象化。人們借助于它認識爭物、淫構彎屣的過程,既是客觀爭物及苴過程不斷形式化的過程,也是人的認識方法不斷客觀化的過程。換句話說>就是客體通過形式化進入主體和主體通過對象化深入客體的兩個過程的交互杯一。面向對象技術由于實現了軟件ICs較好地克服了軟件危機,提高了軟件系統的功能.所以它加速了人們認識爭物的進程,深化了主客體之間的關系。面向對象技術向我們表明?深化主客體之間的關系?提高主體的認識能力J苴唯一正確的途徑就是不斷加速實現軟件葩自然化和系統化。這就是面向對象技術所啟示紿我們的客體走進主體、主體深入客體的方法'論結論,也是一條重要的認識論結論。面向對象程序設計方法解決了傳統結構化方法中問題空間與解空間不一致的問題,避免從分析與設計到軟件模塊結構問的多次轉換過程'便開長憑得簡單S高效、合理。從科學認識辯證法的角度來看J結構化方法是還原主復克法在軟件系統設計方法的映射。必然帶有還原主文的局限性。運用結構化方法為現實世界苗系.統淫模時,隨著分析越來越深入'功能模塊層次越來越多,也就越來越范以重現功能模塊問鋼機聯系。即容易篥只見樹木?不見森林"。利用面向對象方法設計程序,實際上是利用抽象方法定義各種各樣命抽象“類S通過將類具體化為對象和通過在對象之間傳遞消息來完成。苴中'通過模塊和為裝將對象的定義和對象的實現分開。通過継承體現類與類之間的關系。以及由此帶來的動態*接性和并行性。從而構成面向對象的基本特征。面向對象軟件開發方法的出現,是軟件開發方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論