架構和框架的區別,你是如何理解的?


人們對軟件架構存在非常多的誤解:

  其中一個最為普遍的誤解就是:將架構和框架混為一談,其實很簡單,一句話:框架就是軟件,架構不是軟件。框架落腳在“架”字上,可以理解成名詞性的,是一個客觀性的名稱存在,如:.NetFromework;而架構體現在“構”字上,理解成為構造,是一個動詞性的,是一系列動作發生的策略性體現。

 

  框架一種特殊的軟件,它並不能提供完整無缺的解決方案,而是為你構建解決方法提供良好的基礎,框架是半成品,典型的,框架是系統或子系統的半成品,框架中的服務尅被最終應用系統直接調用,而框架中的擴展點是供應用開發人員定制的“可變化點”。

 

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

  框架技術和架構技術的出現,都是為了解決軟件系統日益復雜所帶來的困難而采取“分而治之”思維的結果--先大局后局部,就出現了架構,先通用后專用,就出現了框架,下圖很好揭示了這一點,架構是問題是抽象解決方案,他關注大局而忽略細節,而框架是通用半成品,還必須根據具體需求進一步定制開發才能變成應用系統

總結為兩句話:

(1)為了盡早驗證架構設計,或者處於支持產品線開發的目的,可以將關鍵的通用機制甚至整個架構以框架的方式進行實現;

(2)業界(及公司內部)可能存在大量可重用的框架,這些框架或者已經實現了軟件架構所需的重要架構機制,或者為未來系統的某個子系統提供了可擴展的半成品,所以最終的軟件架構可借助這些框架構造、。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM