框架是和架構比較類似的概念,並且二者有着較強的關聯關係,因此在實際工做中,不少時候這兩個概念並非分得那麼清晰,參考維基百科,框架的定義以下:架構
一般指的是爲了實現某個業界標準或者完成特定基本任務的軟件組件規範,也指爲了實現某某個軟件組件規範時,提供規範作要求之基礎功能的軟件產品。框架
是組件規範,好比:MVC就是一種常見的開發規範,相似的有MVP、MVVM、J2EE等框架。ide
框架提供基礎功能的產品。好比:Spring MVC是MVC的開發框架,除了知足MVC的規範,Spring提供了不少基礎功能來幫助咱們實現功能,包括註解@Controller,Spring Security,Spring JPA等不少功能。翻譯
參考維基百科,這裏簡單的翻譯爲軟件架構師指軟件系統的「基礎結構」,創造這些基礎結構的準則,以及對這些結構的描述。3d
單從定義的角度來看,框架和架構的區別仍是比較明顯的,框架關注的是規範,架構關注的是結構。框架的英文是Framework ,架構的英文是Architecture。Spring MVC的英文文檔標題是Web Framework,包目錄也有framework。blog
儘管如此,在實際工做中咱們卻常常碰到一些似而非似的說法,好比:開發
咱們的系統吃MVC架構 咱們須要將Android App重構 MVP架構 咱們的系統基於SHH框架開發 咱們的系統是SHH的架構文檔
其實以上說法都是對的,形成這種現象的根本緣由隱藏於架構的定義中,關鍵字「基礎結構」,這個概念並無很明確的說清楚從什麼角度來說的,從不一樣的角度或者維度,能夠將系統劃分爲不一樣的結構,其實咱們再「模塊與組件」中的樣例已經暗含了這點,繼續以學生信息管理系統爲例。部署
從業務邏輯的角度分解,」學生信息管理系統「的架構以下:get
從物理部署的角度分解,「學生信息管理系統」的架構以下:
從開發規範的角度分解,「學生信息管理系統」能夠採用標準的MVC來開發,所以架構又變成了MVC架構了,以下圖:
以上這些架構 ,都是學生信息管理系統正確的架構,只是從不一樣的角度來分解而已。