1、控件:
任意打開一個App或者一個網(wǎng)頁,應該很常見輸入框、按鈕、單選框、復選框等等的控件,控件表示程序設計中最小粒度的可復用可編程的部件,就像化學周期表中的每個元素一樣,「氫氦鋰鈹硼」都是不可分割的,但是它們可以組成的物質(zhì)不計其數(shù),難道一個網(wǎng)頁或一個App不是由這些最小的控件組成的嗎?
2、組件:
有一個「組」字,可以簡單理解為是一個組合功能的控件,功能比控件要復雜,可能存在比較復雜的交互。說起來太拗口了,還是說說實例,比如TabHost(腦補下進入微信的界面,最下面有4個按鈕),它具備了加入若干個頁面,并定義了按Tab切換的交互,是由最基本的按鈕控件和其他控件一起組合而成,這種稱為組件。系統(tǒng)也提供很多組件,它包含了許多行為和屬性,而控件更單一,更細粒度。當然你說把組件叫成控件可以不?也沒有什么不可以,可以把它理解為功能復雜的最小單位。
3、框架:
由很多控件和組件組裝在一起,并且能夠在某一領域里面完成一些列操作,理解為一把「瑞士軍刀」,能夠把某一領域內(nèi)的問題完成的干凈漂亮。比如:jQuery框架是對原生js的封裝,提供更方便快捷的JS操作。J2EE框架提供了一套企業(yè)級的網(wǎng)站解決方案。LAMP提供了一套利用開源系統(tǒng)搭建網(wǎng)站的框架。如果你接觸過剛才提到的技術,就比較容易什么是框架了,有的框架提供了更友好、更快捷、更豐富的解決方案。有的是將各種技術組合,來使其對解決某一類問題(比如搭建網(wǎng)站)更加容易使用和快捷。
——部分內(nèi)容整理自網(wǎng)絡——