组件和对象之间的区别

时间:2011-11-26 20:08:26

标签: java java-ee architecture

对象和组件之间的关键区别是什么?任何人都可以在Java中提供对象和组件如何相关的示例吗?如果可能,请提供一些示例,说明对象是什么以及组件是什么。

4 个答案:

答案 0 :(得分:5)

将它映射到一些现实生活中的例子,

在车上,

  • 引擎是一个组件
  • 门是一个组件
  • Key是一个对象
  • 螺栓是一个物体。

这是过度简化(也是主观的)我为了简单和理解而提到过它。组件也可以由其他组件组成。但每个组件都有一个非常特殊的用途(例如发动机,车门,轮胎)。另一方面,对象处于更细粒度的级别,并作为更大组件/系统的构建块。

答案 1 :(得分:3)

假设一般软件架构上下文......

所有对象都是组件,但并非所有组件都必须是对象。

组件是Component-and-Connector Viewtype视图中使用的元素的通用名称。 Component-and-Connector Viewtype描述了运行时(也称为动态)视图,因此组件是运行时结构(与静态结构相对)(Clements et al., Documenting Software Architectures: Views and Beyond)

组件不是特定语言的特定内容,而是组织和思考系统的运行时结构的一种方式,因此开发系统的人员可以理解他们构建的系统如何促进或抑制特定属性。因此,以下是真实的陈述:

  • 对象是组件
  • 一些概念的对象集合是一个组件
  • 甚至组件集合也是一个组件

如何将系统划分为组件取决于您希望向开发人员传达的含义以及系统需要达到的属性。组件在运行时彼此连接 - 例如一个对象实例化另一个,一个连接到Web服务器的Web客户端,一个在事件总线上注册的用户。如果您使用像Java这样的面向对象语言,那么所有组件都将由对象组成。

组件的其他示例(来自组件和连接器的体系结构样式)包括层(N层样式),过滤器(管道和过滤器样式),对象和组件。 "成分"在许多架构描述中成为一种包罗万象的东西,所以最好在可能的情况下更具体。

答案 2 :(得分:2)

组件是非常通用的词,但一般考虑Java-EE架构设计组件是一组类模块,它们一起服务于服务器系统的目的。

对象可以是一个简单的实体。商业模式

让我们举一个在某个银行运行的Java-EE Web应用程序的例子,因此需要用户管理(角色,用户注册,授予某些角色..等等。)

其中

User user = new User()将是单个对象

答案 3 :(得分:0)

对象(汽车)有组件(引擎)。 如果它在汽车外面使用,引擎可以是一个物体,例如为了好玩。

=>对象可以是组件,反之亦然。这仅取决于背景。

但是,对象仍然是基础术语而不是组件,所以我们可以说: 所有组件都是对象,但并非所有对象都是组件。

=> Component是一个对象,它通过上下文附加到另一个对象。

Component =>的同义词成分