天天看點

架構,架構,模式,構件,元件,中間件之間差別

1.什麼是架構?

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

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

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

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

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

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

什麼是架構?

  

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

什麼是模式?

  

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

  

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

  

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

  

什麼是構件?

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

什麼是組建?

一、元件概念

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

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

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

二、元件應用

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

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

在運作狀态下,元件工作在一個确實已經運作的應用程式中。元件必須正确地将自身表示出來,它需要對方法的調用進行處理并實作與其他元件之間有效的協同工作。

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

三、元件建立

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

設計元件是一項繁重的工作。自行開發元件與使用元件進行可視化程式開發存在着極大的不同,要求程式員熟知原有的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給出的一個定義:中間件是一種獨立的系統軟體或服務程式,分布式應用軟體借助這種軟體在不同的技術之間共享資源,中間件位于客戶機伺服器的作業系統之上,管理計算資源和網絡通信。

從這些定義中可以看出:

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

– 中間件不僅僅實作互連,還要實作應用之間的互操作;

– 中間件是基于分布式處理的軟體,最突出的特點是其網絡通信功能。

  

2.為什麼要用模式和架構

  

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

  

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

繼續閱讀