


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、面向組件和面向?qū)ο缶幊痰谋容^Comp onen t-Orie nted Versus Object-Orie nted Programmi ng如果任何.NET類都是組件,而類和組件存在如此多的共性,那么傳統(tǒng)的面向?qū)ο缶幊毯兔嫦蚪M件編程的區(qū)別到底何在?簡而言之,面向?qū)ο缶幊讨塾诒唤M合到一個大的二進制可執(zhí)行程序的類之間的關系,而面向組件編程著眼于獨立工作的可替換的代碼模塊,并且無須非常熟悉其內(nèi)部工作原理。構建塊和單一應用程序的比較Buildi ng Blocks Versus Mon olithic Applicati ons兩種方法論的根本區(qū)別在于對目標應用程序的關注點。在傳統(tǒng)的面向?qū)ο笫澜?/p>
2、里,即便你可以將業(yè)務邏輯分解到多個細粒度的類中,一旦這些類被編譯,最終結果依舊是一個不可拆分的二進制代碼。所有的類共享同一物理部署單元通常是EXE 、進程、地址空間和平安限制等。假設多個開發(fā)人員在同一個代碼庫上工作,他們就不得不共享源文件。在這樣的程序中,對一個類的微小改動都可能導致整個應用程序的重新鏈接和必不可少的重新測試,同時也包括所有其他類的重新部署。另一方面,一個面向組件的應用程序包含的是一組相關聯(lián)的二進制應用程序模塊的集合,就是說,一堆組件以及將這些組件關聯(lián)起來的一堆調(diào)用見圖1-2 。圖"2 :面向組件的應用程序一個特定的二進制組件自身不會做太多的事情。有些是通用組件,諸如
3、文件訪問或通信包 裝組件,有些是高度定制的和專門為該應用程序開發(fā)的組件。一個應用程序通過“粘合一組單獨組件提供的功能,從而實現(xiàn)并執(zhí)行要求的業(yè)務邏輯。組件實現(xiàn)技術如COM、J2EE、CORBA和.NET提供了用以無縫地連接二進制組件的“管道或者叫根底架構,這些技術的主要區(qū)別在于允許你連接這些組件的難易程度不同罷了。將單一的應用程序分解成多個二進制組件的初衷有點類似于將不同的類放在不同的文件中。通過將一個應用程序的每個類代碼放到各自的文件中,你可以降低類和負責他們開發(fā)的開發(fā)人員之間的耦合程度。假設你改變了一個類,盡管你不得不重新鏈接整個應用程序,但是你要做的只是重新編譯那個類的源文件而已。但是,面
4、向組件編程的優(yōu)勢遠不限于簡化軟件工程管理。因為一個面向組件的應用程序是一個二進制構建塊集合,你可以將組件看成“樂高LEGO 積木,可以隨意地添加和刪除它們,直至符合你的要求。假設你要修改一個組件的實現(xiàn),改變的只是包含在其中的組件而已,不存在組件的客戶端要重新編譯和重新部署的問題。只要組件不是正在被使用,你甚至可以在客戶端應用程序運行過程中更新組件。任何對組件的改進、增強和修復都能夠馬上提供給所有使用組件的應用程序,不管該程序是在同一臺機器上還是在網(wǎng)絡上。另外,一個面向組件的應用程序更加容易擴展。當你要實現(xiàn)新的需求時,就可以在新的組件中實現(xiàn)它們,而無須改動跟新需求無關的現(xiàn)有組件。上述這些因素使得
5、面向組件編程能夠降低長期維護本錢,而這一因素對幾乎所有組織都是十分關鍵的,這恰好解釋了組件技術能夠被廣泛采納的原因。面向組件應用程序通常能夠比較快速地推向市場,因為你能夠從一堆可用組件中選擇。有些組件來自內(nèi)部團隊的收集,有些組件來自第三方組件提供商,如此一來就防止了不必要的重復開發(fā)。例如,許多 Visual Basic工程之所以能夠做到實現(xiàn)快速開發(fā),就是因為幾乎在應用程序的任何方面都可以找到相對應的ActiveX控件類庫。接口和繼承In terfaces Versus In herita nee面向組件和面向?qū)ο髴贸绦虻牧硗庖粋€重要差異是在繼承和重用模型上的著重點不同。在面向?qū)ο蟮姆治龊驮O計
6、過程中,應用程序經(jīng)常被建模成復雜層次結構的類,并且這些類被設計成盡可能貼近需要實現(xiàn)的業(yè)務邏輯。你通過從一個已有的基類繼承并且專屬化其行為來 實現(xiàn)對已有代碼的重用。問題在于繼承實現(xiàn)重用是一個比較差的手段。當你從一個基類派生 出一 個子類時,必須完全了解基類的實現(xiàn)細節(jié)。例如,改變成員變量值會有什么邊際影響, 對基類中 的代碼會造成什么影響,重載一個基類方法并提供一個不同的行為是否會破壞那些 預期基類行為 的客戶端代碼?這種方式的重用通常被稱著白盒重用,因為你要熟悉基類的實現(xiàn)細節(jié)。因此,白盒重用不能形成像在大企業(yè)的重用方案或者對第三方框架的方便采用時所需要的規(guī)模經(jīng)濟。相反,面向組件編程強調(diào)黑盒重用,也就意味著允許你使用一個現(xiàn)存的組件,而不用關心內(nèi)部實現(xiàn),只要組件實現(xiàn)了一些預定義的操作或接口。作為組件和客戶端之間使用的契約,面向組件的開發(fā)人員大局部時間花在分解接口上,而不是花力氣設計復雜的類層次結構。警告:.NET允許通過繼承實現(xiàn)的方式使用組件,你確實可以使用這樣的技術開發(fā) 復雜的對象層 次結構,然而,你應該盡可能保持你的類層次關系簡單明了,而將精力集中在 構建接口上。這樣 可以提升你的組件的黑盒重用,而不是通過繼承實現(xiàn)的白盒重用。最后,在應用程序的運行方面,如多線程和并發(fā)管理、平安和分布式應用程序、部署、以及版本控制,面向?qū)ο缶幊烫峁┝撕苌俚墓ぞ吆驮O計模式。一旦須提供處理這些公
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- TY/T 1112-2024冰球賽事轉播制作規(guī)程
- 課題申報書培訓反思
- 河南高中課題申報書范例
- 課題申報書活頁要蓋章嗎
- 課題申報書撰寫注意點
- 全國規(guī)劃辦課題申報書
- 怎樣申報課題申報書
- 幼師申報書課題怎么寫
- 廠房土地回收合同范例
- 課題申報評審書范文
- 大學生職業(yè)素養(yǎng)訓練(第六版)課件 第十二單元養(yǎng)成友善品格
- 哲學與人生 第二課 樹立科學的世界觀2.1
- 傳感器技術-武漢大學
- 初中數(shù)學建模研究報告
- 巖石破碎型泥水平衡頂管施工工法
- 人教A版(2019)高中數(shù)學選擇性必修第二冊 《數(shù)列的相關概念》教學設計
- 醫(yī)療信息共享與互聯(lián)網(wǎng)醫(yī)療管理制度
- 虛勞中醫(yī)護理方案
- 2024新版有限空間作業(yè)安全大培訓
- 九年級語文下冊-【《孔乙己》課后習題參考答案】
- 【美妝產(chǎn)品的直播帶貨營銷策略探究:以花西子彩妝為例12000字(論文)】
評論
0/150
提交評論