12

我还看到了其他术语:实体对象、值对象等。还有其他我应该知道的术语吗?这些术语指的是什么?

它们之间的差异,如果有的话,可以通过阅读代码来识别吗?

4

3 回答 3

19

类是创建对象的模板。并非所有 OO 语言都使用类(参见 Self,Javascript)。通常,类被实现为对象。

对象是一组数据,它与作用于该数据的函数(称为方法)打包在一起。调用类的构造函数为对象分配内存并初始化其成员变量。

实体是表示具有系统有兴趣跟踪的身份的事物的对象。典型的例子是客户和账户。

值对象是一个值,它没有标识,具有相同值的两个实例被认为是相同的。典型的例子是货币金额、地点、支付类型。

数据传输对象用于传递一堆数据。通常,它们用于分布式系统中以捆绑的形式发送数据,以避免重复的网络调用。数据传输对象没有身份(或者没有期望他们应该有任何身份),它们只是数据的容器。

通常,您可以区分实体和值对象,因为实体具有可识别的身份,系统关心的是创建、存储和更改它们。在对象映射到某个数据库的情况下,实体的主键是某种复合自然键或人工键,而值对象则按值进行比较。

于 2013-01-04T17:41:21.323 回答
0

通常,类是定义一组属性和方法/函数的构造,而对象是在运行时创建的类的实际实例。

示例类定义:

public class Example{

...

}

以下将在运行时将 Example 类的实例创建为 Object;

new Example();
于 2013-01-04T17:24:03.057 回答
-1
  • 类定义实体,而对象是实际实体
  • 类是定义对象所需的所有特征和动作的概念模型,而对象是真实模型
  • 类是对象的原型
  • 属于同一类的所有对象具有相同的特征和动作
于 2018-03-31T22:16:51.510 回答