问题 类,对象,实体:有什么区别?


我也看到其他术语:实体对象,价值对象等。我还应该知道其他术语,这些术语是指什么?

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


12761
2018-01-04 17:20


起源

en.wikipedia.org/wiki/Object-oriented_programming - SLaks
它应该取决于您使用的平台/语言。 - Ray Shih


答案:


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

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

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

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

数据传输对象用于传递一堆数据。通常,它们在分布式系统中用于将数据作为捆绑发送,以避免重复的网络呼叫。数据传输对象没有标识(或者没有期望它们应该有任何标识),它们只是数据的容器。

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


15
2018-01-04 17:41





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

样本类定义:

public class Example{

...

}

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

new Example();

0
2018-01-04 17:24





  • 类定义实体,而对象是实体
  • 类是定义对象所需的所有特征和动作的概念模型,而对象是真实模型
  • 类是对象的原型
  • 属于同一类的所有对象具有相同的特征和动作

-1
2018-03-31 22:16



当已经给出一个精确的答案时,没有必要给出不准确的有限答案。 - Oleg Sklyar