框架是一個基本概念上的結構,用於解決或處理複雜的問題。
框架的概念在多個領域中有所套用,但在常見的IT語境中,它特指為解決一個開放性問題而設計的具有一定約束性的支撐結構,在這個結構上,可以根據具體問題擴展、安插更多的組成部分,從而更迅速和方便地構建完整的解決問題的方案。框架可以作為某種編程模式的支架,是一種未完工的半成品,需要開發者賦予它業務含義才能工作,例如MVC(Model-View-Controller)或WPF(Windows Presentation Foundation)。同時,框架包含一系列的約定、配置和工具來幫助二次開發。
框架也可以被視為一種可復用的設計構件,表現為一組抽象構件及構件實例間互動的方法。它是構件技術、軟體體系結構以及套用軟體開發三者相結合的產物。在面向對象的環境下,框架是相互協作的類的集合。
框架的主要特點包括領域內的軟體結構一致性好、建立更加開放的系統、重用代碼大大增加,從而提高軟體生產效率和質量。它還允許採用快速原型技術、有利於在一個項目內多人協同工作、大粒度的重用使得平均開發費用降低,開發速度加快,開發人員減少,維護費用降低,而參數化框架使得適應性、靈活性增強。