‘壹’ 面向组件编程是什么
所有的软件技术和思想的出现都是为了解决所在的那个年代软件开发的复杂性,对象技术和组件技术也不例外。当然还有很多其它技术,像DBC(契约式编程)、AOP、MDA等,这些思想都在影响我们设计/实现程序的方式,但无可否认的是,当今最主流的编程技术是对象技术和组件技术。 面向对象技术已经成熟的发展将近20年了,关于这方面的经典书籍和论文也随处可见。为了解决更大的系统的复杂度,组件技术应运而生,在windows平台上,组件从最初的动态链接库到COM,在到现在的中间件、.NET,就是组件思想走过的轨迹。
面向对象技术的基础是封装--接口与实现分离,面向对象的核心是多态--这是接口和实现分离的更高级升华,使得在运行时可以动态根据条件来选择隐藏在接口后面的实现,面向对象的表现形式是类和继承。面向对象的主要目标是使系统对象化,良好的对象化的结果,就是系统的各部分更加清晰化,耦合度大大降低。
面向组件技术建立在对象技术之上,它是对象技术的进一步发展,类这个概念仍然是组件技术中一个基础的概念,但是组件技术更核心的概念是接口。组件技术的主要目标是复用--粗粒度的复用,这不是类的复用,而是组件的复用,如一个dll、一个中间件,甚至一个框架。一个组件可以有一个类或多个类及其它元素(枚举、)组成,但是组件有个很明显的特征,就是它是一个独立的物理单元,经常以非源码的形式(如二进制,IL)存在。一个完整的组件中一般有一个主类,而其它的类和元素都是为了支持该主类的功能实现而存在的。为了支持这种物理独立性和粗粒度的复用,组件需要更高级的概念支撑,其中最基本的就是属性和事件,在对象的技术中曾一度困扰我们的类之间的相互依赖问题/消息传递问题,迄今为止我所知道最好的解决方案就是事件。要理解组件思想,首先要理解事件的思想和机制。
我一直坚持以为,一个组件的外形/外貌应该是简单的、应该是清晰的、没有冗余的东西、也没有无关紧要的东西,这个外貌通过接口来描述,接口中可以发布事件、属性和方法。这三种元素就足以描述一个组件外貌的所有特征。比如,我曾经用封装的一个完成端口组件,其外貌接口中只有四个方法,三个事件,三个属性而已,而该组件的内部实现却有几千行代码。所以在设计一个组件的时候,需要做很多的权衡,哪些需要通过接口暴露出来,哪些应当作为私有实现。有时,你会处于两难的境地,因为让组件更容易使用,所以需要给出很多默认的参数,但为了使该组件更通用,你又需要暴露更多的属性可以让人设定、暴露更多的方法和事件满足更复杂的功能。你需要抉择,你需要权衡。难怪有人会说,软件的设计更像是艺术,因为艺术的美在于恰当的抉择和平衡。我的经验是,在保持低耦合度的前提下,组件的接口足以对付当前的应用就好。如果日后需要加强功能,那就重构然后增强它,这是很容易的,因为早就说了嘛,保持组件的低耦合度。
需要说明一下的是,我们通常所说的控件(如按钮)也是一种组件,可以这么认为,控件是一种具有UI形式的组件。插件(Addin/Plugin)也是一种特殊的组件,插件的单独存在是没有意义的,它是由兼容该插件协议的框架所使用。
最后强调一点,组件的目标是粗粒度的复用,组件的核心是接口。
‘贰’ C#组件编程的好处是什么
可以简化代码,增加代码的可读性,并利于快速开发
你想想,以后要是一个大项目,要大量用到某些代码块,你设计了组件后碰到这样的地方就直接拖进去就行了;再者,别人开发的某些代码块与你的相同,有了你的组件的话别人就不用再重新开发一次了。
‘叁’ 面向对象,面向服务,面向组件三种编程模式有什么区别
正确说法应该是基于组件开发(Component-Based Development)。
面向对象编程(Object-Oreinted Programming)
是一种编程范式。指在设计程序时大量运用类实例对象的方式。OOP一旦在项目中被运用,就成了时刻要考虑的东西。
面向服务架构(Service-Oreinted Architecture)
是将软件设计成一组可互操作的服务的一套原则或方法论。通常在考虑系统架构时才会触及SOA。
基于组件开发(Component-Based Development)
是一种软件工程实践,设计时通常要求组件之间高内聚,松耦合。其接口可能是OO的,调用方式可能是以Service的方式。基于组件开发关注系统层次、子
系统边界和子系统间通讯的的设计,处于代码层面但不像OOP的一样是时刻需要运用的东西。
‘肆’ 什么叫组件,控件和插件
一般把Control翻译成控件,把Component翻译成组件。
控件就是具有用户界面的组件。要说的具体一点,就得回顾早期
Windows
的历史根源,当时控件指任何子窗口——按钮、列表框、编辑框或者某个对话框中的静态文本。从概念上讲,这些窗口——控件——类似用来操作收音机或小电器的旋钮和按钮。随着控件数量的增加(组合框、日期时间控件等等),控件逐渐成为子窗口的代名词,无论是用在对话框中还是用在其它种类的主窗口中。没过多久
BASIC
程序员开始编写他们自己专用的控件,自然而然地人们便想到共享这些控件。共享代码的方法之一是通过磁盘拷贝,但那样显然效率低下。必须要有一种机制使开发者建立的控件能够在其它程序员的应用中轻而易举地插入,这便是VBA控件,OLE控件,OCX和最后ActiveX
控件的动机。
这就是控件和组件之间产生混淆之所在。因为为了解决控件的可复用问题,所有这些技术必须首先解决更为一般的组件重用问题。(COM,如果你还记得它的话,意思是组件对象模型)。在软件行话中,组件这个术语指任何可复用的对象或任何可与其它对象交互的代码体。子程序的发明,曾经一度成为程序员趋之若鹜的软件工程圣杯:一种统一的编程理论,它使程序员从基本构建块——也就是用所选语言编写的各种组件建立大型系统。从子程序演变到OOP,到DLLs,再到COM,再到.NET框架的每一种新的编程范例都代表了一种不同的提供可重用性的方案。VBX使用DLLs的固化名称。COM使用接口和IUnknown。.NET框架使用微软的中间语言(MSIL)层和公共语言运行时(CLR)来提供统一的粘合。
因此,控件是组件的一个主要样本(并且历史上曾驱动着组件的开发),控件又不仅仅是唯一的一种组件。组件不需要显示任何信息或用户界面。组件可能实现科学计算,收集性能数据,计算1971年1月1日到现在的毫秒数,仰或是读取布什总统竞选活动保险箱里的美金数。
http://www.vckbase.com/document/viewdoc/?id=1294#控件和组件
‘伍’ 什么是应用程序,什么是组件,什么是插件
什么是应用程序(Application)?
应用程序是指为了完成某项或某几项特定任务而被开发运行于操作系统之上的计算机程序。 应用程序与应用软件的概念不同,但常常因为概念相似而被混淆。软件指程序与其相关文档或其他从属物的集合。一般的我们视程序为软件的一个组成部分。
应用程序(Application)运行在用户模式,它可以和用户进行交互,具有可视的用户界面。
对于应用程序,需要了解的是:每一个应用程序运行于独立的进程、他们拥有自己独立的地址空间。不同应用程序的分界线称为进程边界。
应用程序通常又被分为两部分:图形用户接口(GUI)和引擎(Engien)。
其实就是.exe或com的文件了。。。
组件
zǔjiàn
1.[assembly]∶供装配整台机器、构件或元件的零件组合
2.[mole;package]∶在电子或机械设备中组装在一起形成一个功能单元的一组元件
3.[unit]∶组装产品(如书橱或碗橱)时所组合的通常或多或少重复的部分
4.[section]∶可被组装或被重新组装的几个部件之一
插件是一种遵循一定规范的应用程序接口编写出来的程序。很多软件都有插件,插件有无数种。例如在IE中,安装相关的插件后,WEB浏览器能够直接调用插件程序,用于处理特定类型的文件。
��IE浏览器常见的插件例如:Flash插件、RealPlayer插件、MMS插件、MIDI五线谱插件、ActiveX插件等等;再比如Winamp的DFX,也是插件。还有很多插件都是程序员新开发的。
��组件和插件的区别是,插件是属于程序接口的程序,组件在ASP中就是控件、对象,ASP/IIS的标准安装提供了11个可安装组件。ASP的FSO组件,编程的朋友都如雷贯耳吧,它就是最常用的Scripting.FileSystemObject对象
1.什么是插件? 插件是指会随着IE浏览器的启动自动执行的程序.
2.恶意插件有什么特征? 有些插件程序能够帮助用户更方便浏览因特网或调用上网辅助功能,也有部分程序被人称为广告软件(Adware)或间谍软件(Spyware).此类恶意插件程序监视用户的上网行为,并把所记录的数据报告给插件程序的创建者,以达到投放广告,盗取游戏或银行帐号密码等非法目的.
因为插件程序由不同的发行商发行,其技术水平也良莠不齐,插件程序很可能与其它运行中的程序发生冲突,从而导致诸如各种页面错误,运行时间错误等等现象,阻塞了正常浏览.
3.插件会从什么位置加载到IE浏览器中? 根据插件在浏览器中的加载位置,可以分为工具条(Toolbar)、浏览器辅助(BHO)、搜索挂接(URL SEARCHHOOK)、下载ActiveX(ACTIVEX).
4.不同类型插件名词解释
①下载ActiveX(ACTIVEX):
ActiveX插件也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中.在因特网上,ActiveX插件软件的特点是:一般软件需要用户单独下载然后执行安装,而ActiveX插件是当用户浏览到特定的网页时,IE浏览器即可自动下载并提示用户安装.
ActiveX插件安装的前提是必须先下载,然后经过认证,最终用户确认同意方能安装,因此嵌有ActiveX脚本程序的页面可能会变得非常慢,甚至导致浏览器瞬间失去响应.
插件管理专家2005能够屏蔽用户不需要安装的插件程序,加快页面加载速度,确保用户正常浏览.
②浏览器辅助(BHO)
BHO全称Browser Helper Object, 是一种随因特网浏览器(如IE)每次启动而自动执行的小程序.通常情况下,一个BHO文件是由其它软件安装到用户的系统中的.例如一些带有下载功能的广告软件,它可能会安装一个BHO文件从而追踪用户在上网冲浪遇到的众多网页广告.
通常的BHO会帮助用户更方便地浏览因特网或调用上网辅助功能,也有一部分BHO被人称为广告软件(Adware)或间谍软件(Spyware),它们监视用户的上网行为并把记录的相关数据报告给BHO的创建者.BHO也可能会与其它运行中的程序发生冲突,从而导致诸如各种页面错误,运行时间错误等等现象,通常阻止了正常浏览的进行.
插件管理专家2005提供的BHO清理能够帮助用户查看并屏蔽被IE浏览器加载的BHO文件.
③搜索挂接(URL SEARCHHOOK)
用户在地址栏中输入非标准的网址,如英文字符或者中文的时候,当地址栏无法对输入字符串解释成功时,浏览器会自动打开一个以用户输入的字符串为搜索词的结果页面,帮助用户找到需要的内容.URLSearchhook对象就是完成搜索功能的插件.它通常是由第三方公司或者个人开发,通过插件的方式安装到浏览器上, 目的是为了帮助用户更好的使用互联网.例如用户在地址栏中输入"手机",就可以直接看到手机搜索结果.也有一些企业或者个人为了达到提高网站访问或其它商业目的,在用户不知情的情况下修改IE浏览器的URLSearchhook.
使用插件管理专家2005可以对URLSearchhook插件程序进行管理,屏蔽或者删除不需要的恶意插件.
④工具条(Toolbar)
工具条,通常指加载在浏览器的辅助工具.它位于浏览器标准工具条的下方,在IE工具栏空白处点击右键,可以查看所有已经安装的工具条,通过勾选显示或者隐藏已安装的工具条
‘陆’ 程序中组件指的是什么呢
组件就是自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易被用于组装应用程序中。
Python 解释器可以从多种源获得输入:作为标准输入或程序参数传入的脚本,以交互方式键入的语句,导入的模块源文件等等。 这一章将给出在这些情况下所用的语法。
9.1. 完整的 Python 程序
虽然语言规范描述不必规定如何发起调用语言解释器,但对完整的 Python 程序加以说明还是很有用的。 一个完整的 Python 程序会在最小初始化环境中被执行:所有内置和标准模块均为可用,但均处于未初始化状态,只有 sys (各种系统服务), builtins (内置函数、异常以及 None) 和 __main__ 除外。 最后一个模块用于为完整程序的执行提供局部和全局命名空间。
适用于一个完整 Python 程序的语法即下节所描述的文件输入。
解释器也可以通过交互模式被发起调用;在此情况下,它并不读取和执行一个完整程序,而是每次读取和执行一条语句(可能为复合语句)。 此时的初始环境与一个完整程序的相同;每条语句会在 __main__ 的命名空间中被执行。
一个完整程序可通过三种形式被传递给解释器:使用 -c 字符串 命令行选项,使用一个文件作为第一个命令行参数,或者使用标准输入。 如果文件或标准输入是一个 tty 设置,解释器会进入交互模式;否则的话,它会将文件当作一个完整程序来执行。
Python 解释器可以从多种源获得输入:作为标准输入或程序参数传入的脚本,以交互方式键入的语句,导入的模块源文件等等。 这一章将给出在这些情况下所用的语法。
9.1. 完整的 Python 程序
虽然语言规范描述不必规定如何发起调用语言解释器,但对完整的 Python 程序加以说明还是很有用的。 一个完整的 Python 程序会在最小初始化环境中被执行:所有内置和标准模块均为可用,但均处于未初始化状态,只有 sys (各种系统服务), builtins (内置函数、异常以及 None) 和 __main__ 除外。 最后一个模块用于为完整程序的执行提供局部和全局命名空间。
适用于一个完整 Python 程序的语法即下节所描述的文件输入。
解释器也可以通过交互模式被发起调用;在此情况下,它并不读取和执行一个完整程序,而是每次读取和执行一条语句(可能为复合语句)。 此时的初始环境与一个完整程序的相同;每条语句会在 __main__ 的命名空间中被执行。
一个完整程序可通过三种形式被传递给解释器:使用 -c 字符串 命令行选项,使用一个文件作为第一个命令行参数,或者使用标准输入。 如果文件或标准输入是一个 tty 设置,解释器会进入交互模式;否则的话,它会将文件当作一个完整程序来执行。
希望能帮到你,谢谢!
‘柒’ vb编程是什么意思,主要干嘛的
VB程序开发的基本流程是:界面设计(放置窗体和控件)――属性设置(设置窗体、控件的属性)――编写代码――运行调试。其优点是在窗体上添加控件并设置属性后就可完成界面的设计使程序员轻易的就可完成界面的设计,而无需过多的进行设计和编程。只需调用预先准备好的、经过测试的、完全就绪的模块就可完成所需实现的功能。这种备用性的软件模块被称作――组件。窗体和各种控件就是组件。
VB编程的核心思想就是组件编程。VB是最早引入组件编程的概念,其后被其它语言所采用并成为一种标准,如VC++、Delphi、PowerBuilder都采用组件编程模型,并采用面向对象编程技术,成为当今程序设计的发展方向之一。
VB编程时,因为使用组件技术,所以不必从底层的窗体、控件开始设计,可以向工厂通过各种部件组装生产机器一样,通过微软或第三方提供的组件,组装成所需的程序。用什么组装?就是用VB的代码,其作用就像胶水一样,用有限的代码和组件联结成一体。最后形成一个完整的应用程序。
如果没有现成的组件或需要创建一个新类时,就需要编写代码。
组件的种类很多,有多少组件可用,各组件有什么作用,这需要在实践中不断摸索。
‘捌’ java中什么是组件,它和类有什么区别
组件(Component)是对数据和方法的简单封装。C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。
组件是C++ Builder环境中最令人激动的部分。使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。VCL和CLX组件是C++ Builder系统的核心。
http://www.itise.com/phrase/200603302222545.html
‘玖’ java的Swing编程中,组件的概念是什么
你好,Swing是AWT的扩展,它提供了许多新的图形界面组件。Swing组件以“J”开头,除了拥有与AWT类似的按钮(JButton)、标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外,还增加了一个丰富的高层组件集合,如表格(JTable)、树(JTree)。在javax.swing包中,定义了两种类型的组件:顶层容器(Jframe、Japplet、JDialog和JWindow)和轻量级组件。
说白话一点,组件就是构成你图形界面的零部件。如面板,按钮,下拉选等等。