原:http://blog.csdn.net/lfsf802/article/details/8487990編程
在學習軟件工程的時候,第一次接觸到了架構這個概念。當初接觸的時候對其的理解是很是淺薄的,由於那時候工程經驗比較少,對這樣一個深層次的概念仍是模糊不清楚的。設計模式
隨着學習的深刻,開始接觸了設計模式,也就是那本令我愛上編程的書--《大話設計模式》,書中的小菜和大鳥的清晰的對白,讓我猶如身臨其境般,一點一點層層遞進的認識設計模式,認識面向對象的引覺得傲的設計原則。通過了很長時間的學習,深入的發現設計模式的迷人之處,也感受到了編程的藝術之美。架構
在以後,開始學習了SSH框架,第一次感受到框架的好用之處,也再一次感概那些聰明的人們讓編程變得更加輕鬆,也感慨那些聰明的人們對懶惰的執着和渴望。框架
其實之前學習的時候,對這三個東東的關係還真的不是很是清晰,總感受他們很是像,卻不太好說清楚他們之間的關係。如今隨着不斷的學習,不斷的積累經驗,也對這三者的關係有了個清楚的認識。下面總結一下他們之間的關係。學習
1. 概念spa
架構:簡單的說架構就是一個藍圖,是一種設計方案,將客戶的不一樣需求抽象成爲抽象組件,而且可以描述這些抽象組件之間的通訊和調用。.net
框架:軟件框架是項目軟件開發過程當中提取特定領域軟件的共性部分造成的體系結構,不一樣領域的軟件項目有着不一樣的框架類型。框架不是現成可用的應用系統。而是一個半成品,提供了諸多服務,開發人員進行二次開發,實現具體功能的應用系統。架構設計
設計模式:是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結,它強調的是一個設計問題的解決方法。設計
2. 框架與架構關係對象
首先說框架不是架構,應該說框架比架構更具體,更偏重於技術,而架構偏重於設計。還有一個關係就是架構能夠經過多種框架來實現。
3. 框架與設計模式關係
設計模式研究的是針對單一問題的設計思路和解決方法,一個模式可應用於不一樣的框架和被不一樣的語言所實現;而框架則是一個應用的體系結構,是一種或多種設計模式和代碼的混合體雖然它們有所不一樣,但卻共同致力於令人們的設計能夠被重用,在思想上存在着統一性的特色,於是設計模式的思想能夠在框架設計中進行應用。
4. 架構與設計模式關係
二者的關係也是很好區分的,設計模式主要是針對單一問題的解決方法,範疇比較小,而架構是高層次的針對體系結構的一種設計思路,範疇比較大。能夠這麼說,一個架構中可能會出現多個設計模式來解決多種架構中的問題。
5. 總結
經過上面的分析,咱們可以知道他們之間的區別仍是有不少,首先架構應該是一個範疇最大的概念,是最高層次的設計。一個架構設計中可能會用到多個框架和多個設計模式;而框架是針對共性抽象出來的半成品,這裏面可能包含着多個設計模式;而設計模式就是解決單一問題的設計思路和解決方法。
因此咱們在作一個項目的時候首先出來的應該是架構,是對整個問題的一個整體上的設計,以後再會考慮運用什麼樣的框架和設計模式來實現咱們的架構;固然,只使用框架和設計模式中的一種也是常常遇到的。
他們三者的共同點都是解決現實生活中的問題而出現的,並且在架構設計和框架設計還有設計模式中都會表現出來的就是「高內聚,低耦合」的理念;因此他們的共同點就是讓咱們的設計更面向對象化。
因此咱們要想作好一個好的項目,那麼架構設計、框架設計和使用、設計模式是很是重要的。