解讀架構,框架,模式,構件,元件,中介軟體之間區別

atlantisholic發表於2012-06-03

一、什麼是架構?

  架構、框架、模式是一種從大到小的關係,也是一種組合關係。

  架構一般針對一個行業或一類應用,是技術和應用完美的結合。

  框架因為比較小,很多表現為中介軟體,框架一般是從技術角度解決同類問題,例如J道資料增刪改查框架就解決了所有資料庫系統中大量資料增刪改查的功能開發,框架是從技術的橫切面去解決實際應用問題。

  模式則更小了,越小越靈活,可重用的範圍更廣。

  一個框架可能使用了多個模式,而一個架構有可能應用了多個框架,這樣一個大型系統的設計基本從主骨幹到骨架基本能夠被設計者考慮設計到,也可以想見,一個系統被細化成了很多工作量,例如一個部分細化到工廠模式,那麼就可以要求程式設計師實現工廠模式的程式碼即可。

  由此,控制了大型軟體質量,也提高開發效率,同時使得專案變得易於管理和協同,由此可見,一個大型專案的架構設計非常重要。

  二、什麼是框架?

  框架,即framework。其實就是某種應用的半成品,就是一組元件,供你選用完成你自己的系統。簡單說就是使用別人搭好的舞臺,你來做表演。而且,框架一般是成熟的,不斷升級的軟體。

  三、什麼是模式?

  模式,即pattern。其實就是解決某一類問題的方法論。你把解決某類問題的方法總結歸納到理論高度,那就是模式。

  Alexander給出的經典定義是:每個模式都描述了一個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重複相同的工作。

  模式有不同的領域,建築領域有建築模式,軟體設計領域也有設計模式。當一個領域逐漸成熟的時候,自然會出現很多模式。

  四、什麼是構件?

  構件(component)是可複用的軟體組成成份,可被用來構造其他軟體。它可以是被封裝的物件類、類樹、一些功能模組、軟體框架(framwork)、軟體構架(或體系結構Architectural)、文件、分析件、設計模式(Pattern)等。構件分為構件類和構件例項,通過給出構件類的引數,生成例項,通過例項的組裝和控制來構造相應的應用軟體,這不僅大大提高了軟體開發者的開發效率,也大大提高了軟體的質量。

  五、什麼是組建?

  1、元件概念

  簡而言之,元件就是物件。C++ Builder中叫元件,Delphi中叫部件,而在Visual BASIC中叫控制元件。

  元件是對資料和方法的簡單封裝。C++ Builder中,一個元件就是一個從TComponent派生出來的特定物件。元件可以有自己的屬性和方法。屬性是元件資料的簡單訪問者。方法則是元件的一些簡單而可見的功能。

  元件是C++ Builder環境中最令人激動的部分。使用元件可以實現拖放式程式設計、快速的屬性處理以及真正的物件導向的設計。VCL和CLX元件是C++ Builder系統的核心。

  2、元件應用

  使用現成的元件來開發應用程式時,元件工作在兩種模式下:設計時態和執行時態。

  在設計時態下,元件顯示在C++ Builder窗體編輯器下的一個窗體中。設計時態下元件的方法不能被呼叫,元件不能與終端使用者直接進行互動操作,也不需要實現元件的全部功能。

  在執行狀態下,元件工作在一個確實已經執行的應用程式中。元件必須正確地將自身表示出來,它需要對方法的呼叫進行處理並實現與其他元件之間有效的協同工作。

  設計時態下所有的元件在窗體中都是可見的,但在執行時態下不一定可見。如TTable、TQuery和TDataSet在執行時態下就不可見,但他們均完成了重要的功能。

  3、元件建立

  建立元件就是自行設計製作出新的元件。

  設計元件是一項繁重的工作。自行開發元件與使用元件進行視覺化程式開發存在著極大的不同,要求程式設計師熟知原有的VCL類庫結構,精通物件導向程式設計。

  設計元件是一項艱苦的工作。對於元件的開發者,元件是純粹的程式碼。元件的開發不是一個視覺化的開發過程,而是用C++或Object Pascal嚴格編制程式碼的工作。實際上,建立新元件使我們回到傳統開發工具的時代。雖然這是一個複雜的過程,但也是一個一勞永逸的過程。

  建立元件的最大意義在於封裝重複的工作,其次是可以擴充現有元件的功能。

  元件建立過程包括設計、開發、除錯(就是所謂的3D's)工作,然後是元件的使用。

  元件開發者應該掌握的三項主要內容是:屬性、事件和方法。

  六、什麼是中介軟體?

  中介軟體作為一大類系統軟體,與作業系統,資料庫管理系統並稱"三套車",其重要性是不言而語的。

  我們來看看以下的幾種定義:

 _middleware, is a layer of software between the network and the applications. This software provides services such as identification, authentication, authorization, directories, and security. In today's Internet, applications usually have to provide these services themselves, which leads to competing and incompatible standards. By promoting standardization and interoperability,_middleware will make advanced network applications much easier to use.

  同樣,IDC給出的一個定義:中介軟體是一種獨立的系統軟體或服務程式,分散式應用軟體藉助這種軟體在不同的技術之間共享資源,中介軟體位於客戶機伺服器的作業系統之上,管理計算資源和網路通訊。

  從這些定義中可以看出:

  – 中介軟體是一類軟體,而非一種軟體;

  – 中介軟體不僅僅實現互連,還要實現應用之間的互操作;

  – 中介軟體是基於分散式處理的軟體,最突出的特點是其網路通訊功能。

  七、為什麼要用模式和框架

  因為模式是一種指導,在一個良好的指導下,有助於你完成任務,有助於你作出一個優良的設計方案,達到事半功倍的效果。而且會得到解決問題的最佳辦法。

  因為軟體系統發展到今天已經很複雜了,特別是伺服器端軟體,設計到的知識,內容,問題太多。在某些方面使用別人成熟的框架,就相當於讓別人幫你完成一些基礎工作,你只需要集中精力完成系統的業務邏輯設計。而且框架一般是成熟,穩健的,他可以處理系統很多細節問題,比如,事物處理,安全性,資料流控制等問題。還有框架一般都經過很多人使用,所以結構很好,所以擴充套件性也很好,而且它是不斷升級的,你可以直接享受別人升級程式碼帶來的好處。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23071790/viewspace-731792/,如需轉載,請註明出處,否則將追究法律責任。

相關文章