Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是组件_Java_.net_Object - Fatal编程技术网

Java 什么是组件

Java 什么是组件,java,.net,object,Java,.net,Object,我听了podcast java posse,在这方面经常有关于组件的讨论(注意,组件不是(显然)对象)。他们哀叹Java没有组件这一事实,并与.NET形成对比。组件显然使开发应用程序(不仅仅是GUI应用程序)更容易 从讨论中我可以看出,组件具有某些特性,这与解耦有关(用一个组件替换另一个组件只是管道问题)。它与属性有关,它肯定与事件和委托有关 关于这些问题: /谁能给我解释一下组件是什么吗。(以及为什么JavaBean不是组件) /谁能解释一下他们是如何帮助发展的 /有人能解释为什么java没有

我听了podcast java posse,在这方面经常有关于组件的讨论(注意,组件不是(显然)对象)。他们哀叹Java没有组件这一事实,并与.NET形成对比。组件显然使开发应用程序(不仅仅是GUI应用程序)更容易

从讨论中我可以看出,组件具有某些特性,这与解耦有关(用一个组件替换另一个组件只是管道问题)。它与属性有关,它肯定与事件和委托有关

关于这些问题:

/谁能给我解释一下组件是什么吗。(以及为什么JavaBean不是组件)

/谁能解释一下他们是如何帮助发展的


/有人能解释为什么java没有它们,如果它们非常有用的话。

软件工程电台有一个关于这个主题的插曲:

一般的想法是,软件组件可以以元数据的形式描述其自身的依赖关系和服务。我不知道为什么您可能听说Java没有组件,因为您可以想象Java中的体系结构,其中组件确实通过元数据来描述自己。我想这只是因为Java平台定义本身并没有真正的组件体系结构


更新:事实上,人们不必想象这样的体系结构,因为正如其他人所指出的,JavaBean或Servlet肯定可以被视为基于组件的体系结构。

组件这个术语在OO中是最模糊和使用过度的术语之一

大多数人都同意,组件由一组类组成,这些类协作实现一个或多个接口。其中一个类承担“前端”的角色,即它实现接口,但将工作委托给组中的其他类。正如您所说的,组件应该是可替换的,而系统的其他部分不知道

基于组件的体系结构的一个很好的例子是COM。这是一个很好的例子,因为它被大量使用并严格指定。但请注意,这种体系结构的需要是基于C++编译和部署模型的灵活性。
在Java中,您可以对一个类执行大量操作,而不会破坏与系统其余部分的二进制兼容性。因此,不需要构建严格的、基于组件的体系结构。但这完全取决于您如何定义这个术语,例如,任何使用依赖项注入构建的项目都可以算作“基于组件”。

我不知道.NET组件,但从Java POV来看,组件是应该具有定义的接口/使用原则的功能单元。虽然Java没有作为语言概念的组件,但Java中有IMHO组件。技术组件包括:

  • EJB
  • 小仆
功能组件包括:

  • 应用程序的自动更新
  • 启用数据模型计算的公式机制
架构组件可以是JAR文件或OSGi包


当然,总有解释的余地;)

这取决于你所说的“组件”是什么意思。这个词在很多不同的上下文中可能意味着很多不同的东西,因此很容易让人混淆。话虽如此,以下是我对该主题的理解:

组件与对象不同(尽管对象通常用于表示和构建组件)。区别在于两件事:

  • 对象往往只是“事物”,而组件是参与者。区别在于组件是流程的一部分,而对象代表某种抽象概念
  • 组件有助于确保代码重用和可插拔性,因为它们基本上是小的“子程序”(有时是自己的程序),理想情况下可以适应与其他组件一起工作
  • 您倾向于在“无共享”消息传递系统(如or)中看到更多组件,主要是因为这些类型的框架最适合面向组件的设计

  • 有很多面向组件设计的好例子,但我的第一选择是UNIX。UNIX背后的基本思想是,它更多地是一组设计用于协同工作的小程序,而不是由多个更单一的程序组成。

    软件分为几个组。下面是Java块

    • 声明
    • 方法函数。多个语句
    • 班级。多属性和方法函数
    • 文件。一个或多个类。一个类是文件中的公共类,其他类隐藏在文件中
    • 包裹。多个类。这些构成了一个层次结构
    “组件”、“层”、“层”和其他哲学分类通常是概念性的。VB COM环境具有组件的形式主义。其他人都把它们当作想法

    bean是类。单个类可以是组件吗?大概组件通常是一组类。有时只有两个——一个正式接口和一个实现

    组件帮助您关注类、包、分组等的逻辑分组

    因为组件是概念性的,所以每种语言或多或少都有它们。组件的语言形式很少。其实并不需要它们。这是一个你用来构建你的思维的想法或原则


    您可以谨慎地定义一种使用接口、元数据和许多其他特性的“组件”方法

    尽管在Java诞生之初,组件的概念多次与Gui组件相关,但软件工程中组件的一般意义超出了这个概念

    简单地说,组件是一个可重用的软件。像砖块一样,我们合作