天天看點

架構、架構、設計模式之間的關系簡述

http://developer.51cto.com/art/200906/130816.htm

一、軟體體系結構和架構的定義

軟體體系結構的英文單詞是“architecture”. Architecture的基本詞義是建築、建築學、建築風格。 

軟體體系結構雖然根植于軟體工程,但還處于一個研究發展的階段,迄今為止還沒有一個為大家所公認的定義。 

《設計模式》中對架構的定義是架構就是一組互相協作的類,對于特定的一類軟體,架構構成了一種可重用的設計。 

軟體架構是項目軟體開發過程中提取特定領域軟體的共性部分形成的體系結構,不同領域的軟體項目有着不同的架構類型。架構的作用在于:由于提取了特定領域軟體的共性部分,是以在此領域内新項目的開發過程中代碼不需要從頭編寫,隻需要在架構的基礎上進行一些開發和調整便可滿足要求;對于開發過程而言,這樣做會提高軟體的品質,降低成本,縮短開發時間,使開發越做越輕松,效益越做越好,形成一種良性循環。 

架構不是現成可用的應用系統。是一個半成品,需要後來的開發人員進行二次開發,實作具體功能的應用系統。架構不是“平台”,平台概念比較模糊可以是一種作業系統,一種應用伺服器,一種資料庫軟體,一種通訊中間件等地那個,是以平台在應用平台主要指提供特定服務的系統軟體,而架構更側重了設計,開發過程,或者可以說,架構通過調用平台提供的服務而起的作用。 

架構不是工具包或者類庫,調用API并不就是在使用架構開發,緊緊使用API是,開發者完成系統的主題部分,并不時地調用類庫實作特定任務。而架構構成了通用的、具有一般性的系統主體部分,二次開發人員隻是像做填空一樣,根據具體業務,完成特定應用系統中與衆不同的特殊部分。 

二、架構與架構之間的關系

架構不是構架(即軟體體系機構)。體系結構确定了系統整體結構、層次劃分,不同部分之間的協作等設計考慮。架構比架構更具體。更偏重于技術涉嫌。确定架構後,軟體體系結構也随之确定,而對于同一軟體體系結構(比如Web開發中的MVC),可以通過多種架構來實作。 

三、架構與設計模式之間的關系

設計模式和架構在軟體設計中是兩個不同的研究領域。設計模式研究的是一個設計問題的解決方法,一個模式可應用于不同的架構和被不同的語言所實作;而架構則是一個應用的體系結構,是一種或多種設計模式和代碼的混合體雖然它們有所不同,但卻共同緻力于使人們的設計可以被重用,在思想上存在着統一性的特點,因而設計模式的思想可以在架構設計中進行應用。 

架構和設計模式存在着顯著的差別,主要表現在二者提供的内容和緻力應用的領域。 

1)、從應用領域上分,架構給出的是整個應用的體系結構;而設計模式則給出了單一設計問題的解決方案,并且這個方案可在不同的應用程式或者架構中進行應用。 

2)、從内容上分,設計模式僅是一個單純的設計,這個設計可被不同語言以不用方式來實作;而架構則是設計和代碼的一個混合體,程式設計者可以用各種方式對架構進行擴充,進而形成完整的不同的應用。 

3)、以第二條為基礎,可以得出設計模式比架構更容易移植:架構一旦設計成形,雖然還沒有構成完整的一個應用,但是以其為基礎進行應用的開發顯然要受制于架構的實作環境;而設計模式是與語言無關的,是以可以在更廣泛的異構環境中進行應用。 

總之,架構是軟體,而設計模式是軟體的知識體,提升架構的設計水準。

轉載于:https://www.cnblogs.com/feng9exe/p/7597520.html