1. 程式人生 > >何為面向元件程式設計?與之相比面向物件、面向服務又是什麼?

何為面向元件程式設計?與之相比面向物件、面向服務又是什麼?

 

件技術和思想的出現都是為了解決所在的那個年代軟體開發的複雜性,物件技術和元件技術也不例外。當然還有很多其它技術,像DBC(契約式程式設計)、AOP、MDA等,這些思想都在影響程式的設計與實現方式。

面向物件、面向服務、面向元件,他們真實的叫法應該是:“面向物件程式設計”“面向服務架構”“面向元件開發”:

面向物件程式設計(Object-Oreinted Programming) 是一種程式設計正規化

如果有正在學java的程式設計師,可來我們的java技術學習扣qun哦:72340,3928,小編花了近一個月整理了一份非常適合18年學習的java乾貨,加入就免費送java的視訊教程噢!而且我每天晚上都會在裡面直播講Java知識,從零基礎學習到有基礎進階,歡迎初學和進階中的小夥伴。

指在設計程式時大量運用類例項物件的方式。OOP一旦在專案中被運用,就成了時刻要考慮的東西。以它為代表的程式語言有:Java、c++、python、simula 67、Smalltalk等,他們主要有這幾種特點:

1、識認性,系統中的基本構件可識認為一組可識別的離散物件;

2、類別性,系統具有相同資料結構與行為的所有物件可組成一類;

3、多型性,物件具有惟一的靜態型別和多個可能的動態型別;

4、繼承性,在基本層次關係的不同類中共享資料和操作。

面向服務架構(Service-Oreinted Architecture)

面向服務的體系結構不是一個新鮮事物,但它卻是更傳統的面向物件的模型的替代模型,面向物件的模型是緊耦合的,已經存在二十多年了。雖然基於 SOA 的系統並不排除使用面向物件的設計來構建單個服務,但是其整體設計卻是面向服務的。

SOA基礎結構有:SOA、WSD、UDDI、WS-IBasicProfile、J2EE和.Net。同樣它還包括:安全、可靠、策略、控制、管理等特性,而且它與Web容易混淆,Web服務是技術規範,而SOA是設計原則。特別是Web服務中的WSDL,是一個SOA配套的介面定義標準:這是Web服務和SOA的根本聯絡。

面向元件開發(Component-Based Development) 是一種軟體工程實踐

面向元件技術建立在物件技術之上,它是物件技術的進一步發展,類這個概念仍然是元件技術中一個基礎的概念,但是元件技術更核心的概念是介面。元件技術的主要目標是複用--粗粒度的複用,這不是類的複用,而是元件的複用,如一個dll、一箇中間件,甚至一個框架。

VB、PB、C++ Builder/Dephi、JAVA等都是面向元件開發的語言,一個元件的外形/外貌應該是簡單的、應該是清晰的、沒有冗餘的東西、也沒有無關緊要的東西,這個外貌通過介面來描述,介面中可以釋出事件、屬性和方法。這三種元素就足以描述一個元件外貌的所有特徵。