1、控件:
任意打开一个App或者一个网页,应该很常见输入框、按钮、单选框、复选框等等的控件,控件表示程序设计中最小粒度的可复用可编程的部件,就像化学周期表中的每个元素一样,「氢氦锂铍硼」都是不可分割的,但是它们可以组成的物质不计其数,难道一个网页或一个App不是由这些最小的控件组成的吗?
2、组件:
有一个「组」字,可以简单理解为是一个组合功能的控件,功能比控件要复杂,可能存在比较复杂的交互。说起来太拗口了,还是说说实例,比如TabHost(脑补下进入微信的界面,最下面有4个按钮),它具备了加入若干个页面,并定义了按Tab切换的交互,是由最基本的按钮控件和其他控件一起组合而成,这种称为组件。系统也提供很多组件,它包含了许多行为和属性,而控件更单一,更细粒度。当然你说把组件叫成控件可以不?也没有什么不可以,可以把它理解为功能复杂的最小单位。
3、框架:
由很多控件和组件组装在一起,并且能够在某一领域里面完成一些列操作,理解为一把「瑞士军刀」,能够把某一领域内的问题完成的干净漂亮。比如:jQuery框架是对原生js的封装,提供更方便快捷的JS操作。J2EE框架提供了一套企业级的网站解决方案。LAMP提供了一套利用开源系统搭建网站的框架。如果你接触过刚才提到的技术,就比较容易什么是框架了,有的框架提供了更友好、更快捷、更丰富的解决方案。有的是将各种技术组合,来使其对解决某一类问题(比如搭建网站)更加容易使用和快捷。
——部分内容整理自网络——