架構、框架、模式和平臺的區別

設計模式<框架<架構<平臺,從複用角度講,設計模式是代碼級複用、框架是模塊級複用、架構是系統級複用、平臺是企業應用級複用。編程

 

一、設計模式

爲何要先說設計模式?由於設計模式在這些概念中是最基本的,並且也比較簡單。那麼什麼是設計模式呢?說的直白點,設計模式就是告訴你針對特定問題如何組織類、對象和接口之間的關係,是前人總結的經驗。好比我要在代碼中實現一個全局惟一的配置類,那麼就使用Singleton模式。設計模式在實際編碼工做和設計框架時會被使用到,而更高層的架構和平臺則不會太關注它。設計模式

二、框架

作WEB開發接觸到最多的框架可數ORM框架,ORM框架只是全部數據關係映射框架的統稱,具體的如NHibernate、ActiveRecord等,框架是爲了解決特定問題而存在的,其它諸如模板框架、緩存框架,框架不能直接使用,須要二次開發。緩存

三、架構

軟件體系結構一般被稱爲架構,指能夠預製和可重構的軟件框架結構。從大的層面來講,好比針對公司業務的B2C網站系統架構,裏面可能會用到多種解決各方面問題的框架,關注的是技術整合、擴展、可維護性。換個角度,在框架中也會涉及到架構問題,好比開發NHibernate框架,也須要考慮如何進行設計。安全

四、平臺

平臺的概念相似框架,但又結合的架構的考慮,它是更高層面上的「框架」,準確說是一種應用。它是針對企業用戶,爲解決企業業務須要而造成的產品。架構

 

架構與模式之間的關係

架構和模式應該是一個屬於相互涵蓋的過程,可是整體來講Architecture更加關注的是所謂的High-Level Design,而模式關注的重點在於經過經驗提取的「準則或指導方案」在設計中的應用。在不一樣的層面上,模式提供不一樣層面的指導。根據處理問題的粒度不一樣,從高到低,模式分爲3個層次:架構模式(Architectural Pattern)、設計模式(Design Pattern)、實現模式(Implementation Pattern).架構模式是模式中的最高層次,描述軟件系統裏的基本的結構組織或綱要,一般提供一組事先定義好的子系統,指定它們的責任,並給出把它們組織在一塊兒的法則和指南。好比,用戶和文件系統安全策略模型,N-層結構,組件對象服務等,咱們熟知的MVC結構也屬於架構模式的層次。一個架構模式經常能夠分解成不少個設計模式的聯合使用。設計模式是模式中的第二層次,用來處理程序設計中反覆出現的問題。例如,GOF總結的23個基本設計模式——Factory Pattern, Observer Pattern等等。實現模式是最低也是最具體的層次,處理具體到編程語言的問題。好比,類名,變量名,函數名的命名規則;異常處理的規則等等。框架

 

框架與架構之間的關係

框架不是構架(即軟件體系機構)。體系結構肯定了系統總體結構、層次劃分,不一樣部分之間的協做等設計考慮。框架比架構更具體。更偏重於技術涉嫌。肯定框架後,軟件體系結構也隨之肯定,而對於同一軟件體系結構(好比Web開發中的MVC),能夠經過多種框架來實現。編程語言

 

框架與設計模式之間的關係

設計模式和框架在軟件設計中是兩個不一樣的研究領域。設計模式研究的是一個設計問題的解決方法,一個模式可應用於不一樣的框架和被不一樣的語言所實現;而框架則是一個應用的體系結構,是一種或多種設計模式和代碼的混合體雖然它們有所不一樣,但卻共同致力於令人們的設計能夠被重用,在思想上存在着統一性的特色,於是設計模式的思想能夠在框架設計中進行應用。函數

框架和設計模式存在着顯著的區別,主要表如今兩者提供的內容和致力應用的領域。網站

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

2)、從內容上分,設計模式僅是一個單純的設計,這個設計可被不一樣語言以不用方式來實現;而框架則是設計和代碼的一個混合體,編程者能夠用各類方式對框架進行擴展,進而造成完整的不一樣的應用。

3)、以第二條爲基礎,能夠得出設計模式比框架更容易移植:框架一旦設計成形,雖然尚未構成完整的一個應用,可是以其爲基礎進行應用的開發顯然要受制於框架的實現環境;而設計模式是與語言無關的,因此能夠在更普遍的異構環境中進行應用。

 

總之,框架是軟件,而設計模式是軟件的知識體。

 

注:

MVC是一種模式,可是ASP.NET MVC就是一個框架。

相關文章
相關標籤/搜索