人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統 > 網絡技術教程 > 詳細頁面

淺析COM的思想及原理(1)

淺析COM的思想及原理(1)

更新時間:2021-03-17 文章作者:未知 信息來源:網絡 閱讀次數:

網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。

  COM--Component Object Model,即組件對象模型,它是微軟提出的一套開發軟件的方法與規范。它也代表了一種軟件開發思想,那就是面向組件編程的思想。


  一、COM編程思想--面向組件編程思想(COP)

  眾所周知,由C到C++,實現了由面向過程編程到面向對象編程的過渡。而COM的出現,又引出了面向組件的思想。其實,面向組件思想是面向對象思想的一種延伸和擴展。因此,就讓我們先來回憶一下面向對象的思想吧。

  面向對象思想是將所有的操作以及所操作的對象都進行歸類(由class實現),而它的目標是要盡量提高代碼的可重用性(這也是面向對象相比面向過程最大的優點之一)。比如,有兩個程序A和B都需要對class C的對象進行操作,那么class C的代碼就可以重用了(即A和B都可以使用class C的代碼)。但是,對于這一點,面向對象做得并不夠好。還是舉剛才的例子,程序A和B都要對class C的對象進行操作,那么,程序A和B的編程人員都必須將class C的代碼拷貝過來,然后重新編譯一次,這將是多么麻煩的事!況且,如果class C的代碼沒有公開,那這種重用就根本不可能實現了(除非程序A和B的編程人員和class C的編程人員是同一個人或者團隊,但這樣局限性就相當大了)。

  由于面向對象的這些局限性,很多程序員就會想,如果我們編程需要重用別人的成果時,不需要重新編譯別人的代碼那就好了。換句話說,我們要達到的目標是,直接重用別人的成果而不是重用別人的代碼。這樣說也許很抽象,舉個例子大家就會比較明白。比如將class C的代碼編譯生成一個dll,那么當其他程序員想要重用class C時,就只需要在自己的程序中加載這個dll而不需要重新編譯class C的代碼了(這也就是組件必須要能動態鏈接的原因)。正是這種思路引出了面向組件的編程思想。

  下面,我就簡單介紹一下面向組件的思想。在以前,應用程序總是被編寫成一個單獨的模塊,就是說一個應用程序就是一個單獨的二進制文件。后來在引入了面向組件的編程思想后,原本單個的應用程序文件被分隔成多個模塊來分別編寫,每個模塊具有一定的獨立性,也應具有一定的與本應用程序的無關性。一般來說,這種模塊的劃分是以功能作為標準的。比如,一個網上辦公管理系統,從功能上說它需要包含網絡通信、數據庫操作等部分,我們就可以將網絡通信和數據庫操作的部分分別提出來做成兩個獨立的模塊。那么,原本單個的應用程序就分隔成了三個模塊:主控模塊、通信模塊和數據庫模塊。而這里的通信模塊和數據庫模塊還可以做得使其具有一定的通用性,那么其他的應用程序也就可以利用這些模塊了。這樣做的好處有很多,比如當對軟件進行升級的時候,只要對需要改動的模塊進行升級,然后用重新生成的一個新模塊來替換掉原來的舊模塊(但必須保持接口不變),而其他的模塊可以完全保持不變。這樣,軟件升級就變得更加方便,工作量也更小。

  說了這么多,總結一下:面向組件編程思想,歸結起來就是四個字:模塊分隔。這里的“分隔”有兩層含義,第一就是要“分”,也就是要將應用程序(尤其是大型軟件)按功能劃分成多個模塊;第二就是要“隔”,也就是每一個模塊要有相當程度的獨立性,要盡量與其他模塊“隔”開。這四個字是面向組件編程思想的精華所在,也是COM的精華所在!理解了這四個字,也就真正理解了面向組件編程的思想。(這里說一點題外話,COM其實是一套規范或者說一套標準,但是在我看來,COM的核心還在于它的思想,也就是面向組件編程思想。標準誰都能定,但是思想只有一個!)

  二、COM的優點

  COM的優點也就是面向組件編程思想的優點。而面向組件編程思想有很多的優點,上面所說的便于軟件升級只是其中之一。對于它的優點,我總結了一下,有下面幾條:

  1、便于重用,使軟件開發更快捷

  2、便于軟件升級

  3、便于軟件開發的分工協作

  4、便于用戶定制自己的應用

  以上幾點,第一和第二點都不用再多說了,前面講面向組件編程思想的部分里面已經充分展示出了這兩點優點。在這里我解釋一下第三和第四點。

  如今的很多大型軟件,都不可能由某一個人單獨開發,甚至不會由某一個公司去單獨開發。這是因為現在的很多大型軟件,綜合性太強,涉及的面也太廣。而一個人的精力是有限的,不可能學會這么多方面的知識,也不可能掌握到這么多方面的編程技術,即使有可能,這樣做的效率也是很低下的。所以,通常的情況是分工協作。仍以前面提到的網上辦公管理系統為例,這個系統分為了三個模塊:主控模塊、通信模塊和數據庫模塊。由于這三個模塊具有相當的獨立性,那么就可以將現有的所有開發人員分為三組,每一組負責一個模塊。而這三組之間,只需要商量好相互間的接口就可以了。這樣,對于每一個開發人員來說,就不需要掌握所有的編程技術,甚至不需要了解其他模塊的具體實現,而軟件仍然能有效的開發成功。這就是所謂的便于軟件開發的分工協作了。

   除此之外,如果一個大型的軟件希望允許用戶在一定程度上定制自己的應用,那么COM也是最好的選擇。比方說一個軟件由兩個模塊組成,模塊A和模塊B,現在軟件的開發商希望給予用戶一定的靈活性,希望可以允許用戶自己定制模塊B來實現自己特定的應用,那么就只需要公開模塊B的所有接口;而用戶自己編程實現模塊B時也只需要實現了所有的這些接口就行了。當然,這里面還有很多問題,比如COM組件的注冊,這涉及到COM標準的一些細節,在這里不作討論。



網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 清涧县| 夏邑县| 定西市| 冕宁县| 建宁县| 台中县| 禄劝| 上饶市| 调兵山市| 清镇市| 会东县| 九寨沟县| 涟源市| 德化县| 夏河县| 兴国县| 凤城市| 普兰店市| 云梦县| 武胜县| 宜阳县| 定州市| 攀枝花市| 宜黄县| 杭锦后旗| 虞城县| 双江| 大悟县| 三都| 海阳市| 新化县| 庄河市| 霍城县| 岳普湖县| 安达市| 本溪| 晋中市| 集贤县| 萨迦县| 伊宁县| 绩溪县|