Cambria">架構模式1Calibri;mso-hansi-font-family:Calibri">理論
架構模式(Architectural Pattern)
一個架構模式描述軟體系統裡的基本的結構組織或綱要。架構模式提供一些事先定義好的子系統,指定它們的責任,並給出把它們組織在一起的法則和指南。有些作者把這種架構模式叫做系統模式[STELTING02]。
一個架構模式常常可以分解成很多個設計模式的聯合使用。顯然,MVC模式就是屬於這一種模式。MVC模式常常包括調停者(Mediator)模式、策略(Strategy)模式、合成(Composite)模式、觀察者(Observer)模式等。
此外,常見的架構模式還有:
·Layers(分層)模式,有時也稱Tiers模式
·Blackboard(黑板)模式
·Broker(中介)模式
·Distributed Process(分散過程)模式
·Microkernel(微核)模式
架構模式常常劃分成如下的幾種:
一)、 From Mud to Structure型。協助架構師將系統合理劃分,避免形成一個對象的海洋(A sea of objects)。包括Layers(分層)模式、Blackboard(黑板)模式、Pipes/Filters(管道/過濾器)模式等。
二)、分散系統(Distributed Systems)型。為分散式系統提供完整的架構設計,包括像Broker(中介)模式等。
三)、人機互動(Interactive Systems)型,支援包含有人機互動介面的系統的架構設計,例子包括MVC(Model-View-Controller)模式、PAC(Presentation-Abstraction-Control)模式等。
四)、Adaptable Systems型,支援應用系統適應技術的變化、軟體功能需求的變化。如Reflection(反射)模式、Microkernel(微核)模式等。
來自:http://fanqiang.chinaunix.net/program/project/2005-06-16/3316.shtml
Layers架構模式
在收集到使用者對軟體的要求之後,架構設計就開始了。架構設計一個主要的目的,就是把系統劃分成為很多"板塊"。劃分的方式通常有兩種,一種是橫向的劃分,一種是縱向劃分。
橫向劃分將系統按照商業目的劃分。比如一個書店的管理系統可以劃分成為進貨、銷售、庫存管理、員工管理等等。
縱向劃分則不同,它按照抽象層次的高低,將系統劃分成"層",或叫Layer。比如一個公司的內網管理系統通常可以劃分成為下面的幾個Layer:
一、網頁,也就是使用者介面,負責顯示資料、接受使用者輸入;
二、領域層,包括JavaBean或者COM對象、B2B服務等,封裝了必要的商業邏輯,負責根據商業邏輯決定顯示什麼資料、以及如何根據使用者輸入的資料進行計算;
三、資料庫,負責儲存資料,按照查詢要求提供所儲存的資料。
四、作業系統層,比如Windows NT或者Solaris等
五、硬體層,比如SUN E450伺服器等
有人把這種Layer叫做Tier,但是Tier多帶有物理含義,不同的Tier往往位於不同的電腦上,由網路連接起來,而Layer是純粹邏輯的概念,與物理劃分無關。
Layers架構模式的好處是:
第一、任何一層的變化都可以很好地局限於這一層,而不會影響到其他各層。
第二、更容易容納新的技術和變化。Layers架構模式容許任何一層變更所使用的技術