实体是类的实例吗?
7 回答
类是对象(除其他外)的模板,是一个非常笼统的概念。
实体具有更多语义意义,通常与概念相关联(可能与真实对象有关,例如Employee或Student或Music Album)并与业务逻辑相关联。
实体通常用于在对象和数据库中的表之间建立映射。实体也称为域对象。就像我之前提到的,实体将在存在业务逻辑的情况下使用,因此它包含有关它正在建模的系统(或系统的一部分)的信息。
实体通常指的是具有独特而独立存在的东西,任何真正的东西。
在软件开发中,这个词几乎只用于表示一个实例与另一个实例不同,并且它们彼此独立。
另一方面,类定义或包含对象的定义。一旦根据定义构造了该对象,您就会得到您的实例或对象实例。
简短——是的。
实体更多的是来自现实世界的概念。实例(别名是对象)——来自编程世界。
在编程世界中,我们也有一个“实体”概念,但在这里它更像是一个实例的孩子。所以任何实体都是实例的孩子。实体也有它与其他事物的链接,但编程 - 例如,正如人们所说 - 实体可以在数据库中拥有表。实例在数据库中不能有表。因为实例总是连接到类。
实体
实体是一个轻量级的持久域对象。通常,一个实体表示关系数据库中的一个表,每个实体实例对应于该表中的一行。实体的主要编程工件是实体类,尽管实体可以使用帮助类。实体的持久状态通过持久字段或持久属性表示。这些字段或属性使用对象/关系映射注释将实体和实体关系映射到底层数据存储中的关系数据。
实体类具有实体的构造型。实体类本质上是数据库表的对象包装器。实体的属性被转换为数据库表上的列。实体可以有各种数据维护操作,例如读取、插入、修改、删除、readmulti(读取多根据部分键从表中读取多条记录)。
实体可以具有属性、操作、依赖关系、继承关系和聚合。一组规则与这些构造中的每一个相关联。
实体类规则
实体必须至少有一个属性。例外情况是实体是另一个实体的子类,在这种情况下,实体必须没有属性。实体不允许聚合其他类。实体属性
实体属性对应于其关联数据库表中具有相同名称的列。实体操作
实体操作根据其构造型可分为两类:数据库操作和非数据库操作。实体输出
实体类被转换为具有操作且没有属性的类。输入元模型中实体的属性被转换为一个或多个结构。实体类选项 实体类
可用的选项有实体类抽象、允许乐观锁定、审计字段、启用验证、上次更新字段、不生成 SQL 和替换超类。并发控制的
乐观锁定 使用并发控制的乐观锁定意味着多个用户一次可以访问一条记录,但只有其中一个用户可以提交对该记录的更改。表级审计
使用数据库表级审计选项启用表级审计。退出点
退出点是您编写的回调函数。它由服务器在预定义的战略点执行。实体继承
输入元模型实体类可以继承其他实体类。上次更新字段
上次更新字段是一个字段,您可以将其添加到数据库表中,以包含有关每条记录的修改时间的额外信息,以用于报告目的。
我从 Nimit Singhania 的这篇论文“基于实体的编程范式”中复制。宾夕法尼亚大学:
实体是代表一组节点或子实体的抽象单元。它使用其子实体提供的服务以及这些子实体之间的协作来实现其所需目标。它有自己的身份,对外部世界表现为一个单一的单元,就像在现实生活中一个团队或一个组织是一个完整的单元,而不仅仅是个人的集合。分布式系统本质上是一个实体层次结构,其中每个实体都有特定的角色并提供特定的服务 [...]
[...]实体抽象与面向对象编程中的对象非常相似。对象和实体之间的主要区别在于,实体是主动和活跃的单位,而对象是被动的。实体由相互交互以提供服务并可能与其他实体交互的活动子实体组成。然而,一个对象仅由外部世界可以查询和操作的静态字段和属性组成。但是,许多来自面向对象编程的见解都可以应用到这种编程范式中。我们可以有实体的类和类型,其中一个类可以为系统的其余部分提供特定的服务和功能。还,我们可以定义实现核心结构的抽象实体和一些用于节点之间交互的基本协议,这些可以进一步扩展以实现实际实体。同样,我们可以定义定义一组服务的接口。这些接口可以由具有不同保证的多个实体实现,并且根据需求,程序员可以选择其中一个来提供所需的服务。