实体和类有啥区别?
Posted
技术标签:
【中文标题】实体和类有啥区别?【英文标题】:What's the difference between entity and class?实体和类有什么区别? 【发布时间】:2011-02-02 18:13:33 【问题描述】:实体是类的实例吗?
【问题讨论】:
【参考方案1】:类是对象的模板(除其他外),是一个非常笼统的概念。
entity 具有更多语义意义,并且通常与一个概念相关联(可能与真实对象有关,例如 Employee 或 Student 或音乐专辑)并与业务逻辑相关联。
实体通常用于在对象和数据库中的表之间建立映射。实体也称为域对象。就像我之前提到的,实体将用于存在业务逻辑的情况下,因此它包含有关它正在建模的系统(或系统的一部分)的信息。
【讨论】:
@Steven 应该被选为答案。 “实体通常用于在对象和数据库中的表之间建立映射。实体也称为域对象” - 我可能读错了,但这是否包括持久化域对象,这是我通常会尽量避免的... @Jean-FrançoisSavard 我倾向于同意你的观点——这些天我区分实体和域对象。【参考方案2】:多加一点
类是一种句法,即具有某些共同属性或属性的事物的集合或类别,并通过种类、类型或质量与其他事物区分开来。
实体是一种语义,即与语言或逻辑中的意义有关。一个实体实体是存在自身的东西,实际上或潜在地,具体或抽象地,物理或不存在。它不必是物质存在的。
Object是一个标识符引用的内存值,是一个Class的实例。
【讨论】:
【参考方案3】:实体通常指的是具有独特而独立存在的东西,任何真正的东西。
在软件开发中,这个词几乎只用于表示一个实例与另一个实例不同,并且它们彼此独立。
另一方面,类定义或包含对象的定义。一旦根据定义构造了该对象,您就会获得 instance 或 object instance。
【讨论】:
【参考方案4】:短——是的。
实体更多是来自现实世界的概念。 实例(别名是对象)——来自编程世界。
在编程世界中,我们也有一个“实体”概念,但这里它更多是实例的子代。所以任何实体都是实例的孩子。实体也有它与其他事物的链接,但编程 - 例如,正如人们所说 - 实体可以在数据库中拥有表。 实例在数据库中不能有表。因为实例总是连接到类。
【讨论】:
【参考方案5】:对象是具有状态、行为和身份的实体。结构和 相似对象的行为在它们的公共类中定义。术语实例 和 object 可以互换。
来自Grady Booch book。
所以我们可以说,实体、对象和类实例是可以互换的。
【讨论】:
你的结论根本不符合给定的定义 @FelixDombek 是的,你是对的。根据该定义,对象是一种特殊的实体。并不是所有的实体都可以被视为对象。【参考方案6】:实体
实体是一个轻量级的持久域对象。通常,一个实体表示关系数据库中的一个表,每个实体实例对应于该表中的一行。实体的主要编程工件是实体类,尽管实体可以使用帮助类。 实体的持久状态通过持久字段或持久属性表示。这些字段或属性使用对象/关系映射注释将实体和实体关系映射到底层数据存储中的关系数据。
实体类具有实体的原型。实体类本质上是数据库表的对象包装器。实体的属性被转换为数据库表上的列。实体可以有多种数据维护操作,如read、insert、modify、remove、readmulti(read multi根据部分键从表中读取多条记录)。
实体可以有属性、操作、依赖、继承关系和聚合。一组规则与这些结构中的每一个相关联。
实体类规则 实体必须至少具有一个属性。例外情况是实体是另一个实体的子类,在这种情况下,实体必须没有属性。实体不允许聚合其他类。
实体属性 实体属性对应于其关联数据库表中具有相同名称的列。
实体操作 实体操作根据其构造型可分为两类:数据库操作和非数据库操作。
实体输出 实体类被转换为具有操作且没有属性的类。输入元模型中实体的属性被转换为一个或多个结构。
实体类选项 实体类可用的选项有实体类抽象、允许乐观锁定、审计字段、启用验证、上次更新的字段、不生成 SQL 和替换超类。
用于并发控制的乐观锁 使用乐观锁定进行并发控制意味着多个用户一次可以访问一条记录,但只有其中一个用户可以提交对该记录的更改。
表级审计 使用数据库表级审计选项启用表级审计。
出口点 退出点是您编写的回调函数。它由服务器在预定义的战略点执行。
实体继承 输入元模型实体类可以继承其他实体类。
上次更新字段 最后更新的字段是一个字段,您可以将其添加到数据库表中,以包含有关每条记录的修改时间的额外信息以用于报告目的。
您也可以查看link 和link 了解更多信息!
【讨论】:
【参考方案7】:我从this paper 复制,“基于实体的编程范式”,Nimit Singhania。宾夕法尼亚大学:
实体是一个抽象单位,代表一组 节点或子实体。它使用其提供的服务 子实体和这些子实体之间的协作 达到其要求的目标。它有自己的身份并出现 作为外部世界的一个单元,就像在现实中一样 生活一个团队或一个组织是一个整体,而不仅仅是一个 个人的集合。分布式系统本质上是 每个实体都有特定角色的实体层次结构 并提供特定服务 [...]
[...]实体抽象非常类似于object in object 面向编程。对象之间的主要区别 和一个实体是一个实体是一个活跃的和活的 单位,而对象是被动的。实体由活动子实体组成 相互交互以提供服务和 可能与其他实体交互。鉴于,一个 对象仅由静态字段和属性组成 被外部世界查询和操纵。但是,很多 可以承载来自面向对象编程的见解 转到这个编程范式。我们可以上课 和实体类型,其中一个类可能提供特定的 系统其余部分的服务和功能。还, 我们可以定义实现核心的抽象实体 结构和一些用于交互的基本协议 节点,这些可以进一步扩展以实现实际 实体。类似地,我们可以定义接口来定义 一套服务。这些接口可以通过 多个实体提供不同的担保,并基于 需求,其中之一可以由程序员选择 提供所需的服务。
【讨论】:
链接为空。我在其他任何地方都没有找到整篇论文,你能更新答案中的链接吗? 现在试试这个:drive.google.com/file/d/1yDg7ZZLLd3l7yqRgNqs6FN8wctViw5xd/…以上是关于实体和类有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章