架構和框架的區別

2021-06-28 13:45:18 字數 976 閱讀 9922

人們對軟體架構存在非常多的誤解,其中乙個最為普遍的誤解就是:將架構(architecture)和框架(framework)混為一談。其實很簡單,一句話:框架是軟體,架構不是軟體。框架落腳在「架」字上,可以理解成名詞性的,是乙個客觀性的名詞存在,如.net framework;而架構體現在「構」字上,理解成構造,是乙個動詞性的,是一系列動作發生的策略性體現。

框架是一種特殊的軟體,它並不能提供完整無缺的解決方案,而是為你構建解決方案提供良好的基礎。框架是半成品。典型地,框架是系統或子系統的半成品;框架中的服務尅被最終應用系統直接呼叫,而框架中的擴充套件點是**用開發人員定製的「可變化點」。

架構不是軟體,而是關於軟體如何設計的重要策略。軟體架構決策設計到如何將軟體系統分解成不同的部分、各部分之間的靜態結構關係和動態互動關係等。經過完整的開發過程之後,這些架構決策將體現在最終開發出的軟體系統中;當然,引入軟體架構之後,整個開發過程變成了「分兩步走」,而架構決策往往會體現在框架之中。或許,人們常把架構和框架混為一談的原因就在於此吧!我們不能指著某些**,說這就是軟體架構,因為軟體架構是比具體**高乙個抽象層次的概念。架構勢必被**所體現和遵循,但任何一段具體的**都代表不了架構。

框架技術和架構技術的出現,都是為了解決軟體系統日益複雜所帶來的困難而採取「分而治之」思維的結果-----先大局後區域性,就出現了架構;先通用後專用,就出現了框架。下圖很好地揭示了這一點。架構是問題的抽象解決方案,它關注大局而忽略細節;而框架是通用半成品,還必須根據具體需求進一步定製開發才能變成應用系統。

簡而言之,框架和架構的關係可以總結為兩句話:(1)為了盡早驗證架構設計,或者處於支援產品線開發的目的,可以將關鍵的通用機制甚至整個架構以框架的方式進行實現;(2)業界(及公司內部)可能存在大量可供重用的框架,這些框架或者已經實現了軟體架構所需的重要架構機制,或者為未來系統的某個子系統提供了可擴充套件的半成品,所以最終的軟體架構可以借助這些框架構造。

架構和框架的區別

節選自 軟體架構設計 書稿 圖2 7 架構和框架的區別 筆者發現,人們對軟體架構存在非常多的誤解,其中乙個最為普遍的誤解就是 將架構 architecture 和框架 framework 混為一談。一圖勝千言,圖 2 7切中肯綮地點出了架構和框架的區別。一句話,框架是軟體,架構不是軟體。框架是一種特...

架構和框架的區別

人們對軟體架構存在非常多的誤解,其中乙個最為普遍的誤解就是 將架構 architecture 和框架 framework 混為一談。框架是一種特殊的軟體,它並不能提供完整無缺的解決方案,而是為你構建解決方案提供良好的基礎。框架是半成品。典型地,框架是系統或子系統的半成品 框架中的服務可以被最終應用直...

架構和框架的區別

框架 是一種特殊的軟體,它並不能提供完整無缺的解決方案,而是為你構建解決方案提供良好的基礎。框架 是半成品。典型地,框架 是系統或子系統的半成品 框架 中的服務可以被最終應用直接呼叫,而框架 中的擴充套件點是 用開發人員定製的 可變化點 軟體架構 不是軟體,而是關於軟體如何設計的重要決策。軟體架構 ...