泛型程式設計 vs. 物件導向

來源:互聯網
上載者:User
  1. 物件導向:封裝(資料抽象)是基礎,繼承是手段,多態是目的;泛型程式設計:參數化型別(概念抽象)是基礎,模板是手段,通用是目的

  2. 物件導向是運行時問題空間的多態,泛型程式設計是編譯時間演算法空間的多態

  3. OO以Type為中心,GP以Concept為中心,而Concept完全獨立於Type;OO的type是顯式定義的,type之間的關係也是顯式定義的,是語言支援的 ;GP的Concept是由演算法隱式定義的,Concept之間的關係,是無法用目前的C++文法直接表達的;Concept的Model完全可以是毫無關係的Type,refinement獨立於inheritence,original concept與其refinement concept的model之間可以毫無關係

  4. 以GP寫就的演算法,自動滿足最小介面原則,無需為其參數定義形式化的類型;在OO中,這種形式化的Type具有的操作往往不是所有用到該Type的演算法都會用到的

  5. OOP支援二進位組件形式的複用,GP支援源碼層級的複用;與二進位碼相比較,源碼天生具有更多資訊和更進階別,所以泛型程式設計支援更豐富的構件,但其代價是較弱的執行期動態性;你無法通過STL完成CORBA所能完成的功能,反之亦然,兩種技術相互補充

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.