架構和框架的區別

  筆者發現,人們對軟件架構存在非常多的誤解,其中一個最爲普遍的誤解就是:將架構和框架(Framework)混爲一談。本文闡述了它們的區別。算是對思辨成果的一個應用吧。一圖勝千言,圖7切中肯綮地點出了架構和框架的區別。一句話,框架是軟件,架構不是軟件。

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

  軟件架構不是軟件,而是關於軟件如何設計的重要決策。軟件架構決策涉及到如何將軟件系統分解成不同的部分、各部分之間的靜態結構關係和動態交互關係等。經過完整的開發過程之後,這些架構決策將體現在最終開發出的軟件系統中;當然,引入軟件框架之後,整個開發過程變成了分兩步走,而架構決策往往會體現在框架之中。或許,人們常把架構和框架混爲一談的原因就在於此吧。

  理解了本圖,我們就很容易理解Frank Buschmann等人在《面向模式的軟件體系結構(第一卷)》中爲框架所下的定義了,其中也提到了框架和架構的關係:

  框架是一個可實例化的、部分完成的軟件系統或子系統,它爲一組系統或子系統定義了架構,並提供了構造系統的基本構造塊,還爲實現特定功能定義了可調整點。在面向對象環境中,框架由抽象類和具體類組成。(A framework is a partially complete software (sub-) system that is intended to be instantiated. It defines the architecture for a family of (sub-) systems and provides the basic building blocks to create them. It also defines the places where adaptations for specific functionality should be made. In an object-oriented environment a framework consists of abstract and concrete classes.

 

 

7    架構和框架的區別

發佈了29 篇原創文章 · 獲贊 14 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章