学习了三层架构之后,就是七层登录。在了解概念和逻辑的过程中,发现有的人说到了实体(Entity),还有的人说的是模型(Model)。我不明白这两者是什么区别,于是,有了这篇博客。


实体(Entity)

维基百科描述到:
实体(Entity)是有可区别性且独立存在的某种事物,但它不需要是物质上的存在。尤其是抽象和法律拟制也通常被视为实体。

可见,实体就是软件系统中的研究对象。
比如:学生信息管理系统中,学生这一概念就是一个实体,它是我们软件系统的主要研究对象。

模型(Model)

维基百科描述到:
在软件工程中,数据模型是定义数据如何输入与输出的一种模型。其主要作用是为信息系统提供数据的定义和格式。数据模型是数据库系统的核心和基础,现有的数据库系统(关系数据库)都是基于某种数据模型建立起来的。

百度百科描述到
Model是计算机程序设计中有两个概念:一个是三层架构中的实体类,另一个是MVC架构中的模型。

1、在“三层架构”中,为了面向对象编程,将各层传递的数据封装成实体类,便于数据传递和提高可读性。
2、在MVC(模型Model-视图View-控制器Controller)模式中,Model代表模型,是业务流程/状态的处理以及业务规则的制定,接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。

可见,数据模型这个概念更多出现在数据库系统中。它是为了把研究对象进行抽象,目的是要与数据库系统中的数据模型进行关系映射


从实体概念可以得知,实体正是数据库系统的研究对象。所以,建模过程即为:为实体进行抽象和定义,用一个数据模型对实体进行描述,此数据模型则为数据库系统提供数据支持。

在计算机系统中,在不同的业务层,它们有着不同的体现。

关于命名

Entity, Model, DataModel在开发过程中经常看到这三个命名,其实他们都是同一个概念,即数据模型的定义,是对实体抽象描述的产物。
JAVA程序设计中数据访问层的数据模型一般以Bean结尾,表示它是一个JavaBean,而.NET中更多的是使用Model作为后缀,也有人以Entity作为后缀,这也就解释了为什么任何一个项目中都免不了看到这三个单词

数据访问层的数据模型对数据访问权限没有要求,甚至可以说,必须对外开放访问,所以常见的数据成员的数据访问修饰符都是Public;
业务逻辑层更多是以实体本身命名,比如:Student,Blog等,它要求具有较强的封装性,不但封装变化,更要封装操作,所以对于Client而言,某些数据是无法访问的。

总结

实体是设计时存在的概念,不应该出现在计算机系统的具体定义中,而数据模型是计算机系统中的操作对象的抽象,它们本为一个概念—系统研究对象的抽象,只是所处环境不同导致有所差异。

(小编还在继续了解和学习中,如果您有更好的见解欢迎评论或私信哟(^U^)ノ~YO)

实体(Entity)和模型(Model)相关推荐

  1. 用深度学习做命名实体识别(五)-模型使用

    通过本文,你将了解如何基于训练好的模型,来编写一个rest风格的命名实体提取接口,传入一个句子,接口会提取出句子中的人名.地址.组织.公司.产品.时间信息并返回. 核心模块entity_extract ...

  2. 文件错误关于hibernate中报Duplicate class/entity mapping org.model.User错的问题

    废话就不多说了,开始... 我昨天犯了一很傻得错误,在现想起来都感到很笑好.天今就把她2写下来,一来可以当个笑话供大家乐娱,二来可以当作一次验经吧!! 我昨天做了下结业而计设,在用hibernate存 ...

  3. 基于Bert的实体关系抽取模型

    关注微信公众号:NLP分享汇.[喜欢的扫波关注,每天都在更新自己之前的积累] 文章链接:https://mp.weixin.qq.com/s/OebxnvwjQiVbBZZFL2Un3A 前言 信息抽 ...

  4. python3.9 执行python3.6生成的随机森林模型model.pkl报错,警告版本不一致

    python3.9 执行python3.6生成的随机森林模型model.pkl报错 UserWarning: Trying to unpickle estimator RandomForestClas ...

  5. 【教程】利用libsvm-mat建立分类模型model参数解密【by faruto】

    原文地址:http://www.matlabsky.com/thread-12649-1-1.html 建议大家看这篇帖子之前先看一下以下几篇帖子: 如何使用libsvm进行分类[by faruto] ...

  6. OpenGL 加载模型Model

    OpenGL 模型Model 模型Model简介 导入3D模型到OpenGL 从Assimp到网格 索引 材质 重大优化 和箱子模型告别 模型Model简介 现在是时候接触Assimp并创建实际的加载 ...

  7. php中orm模型,模型model

    ## 模型model 在看模型之前,我们先看一段yaf作者鸟哥在他自己博客里的一段文字吧: > 还有不少同学问, 为什么Yaf没有ORM, 这里有俩方面的考虑: 首先, Yaf并不是万能的, 它 ...

  8. php.ini开启命名空间,Zend Framework教程之模型Model基本规则和使用方法

    本文实例讲述了Zend Framework教程之模型Model基本规则和使用方法.分享给大家供大家参考,具体如下: 这里讲讲Zend中的model.其实Zend中的Model处理是相当简单的. 这主要 ...

  9. php 框架源码分析,Laravel框架源码解析之模型Model原理与用法解析

    本文实例讲述了Laravel框架源码解析之模型Model原理与用法.分享给大家供大家参考,具体如下: 前言 提前预祝猿人们国庆快乐,吃好.喝好.玩好,我会在电视上看着你们. 根据单一责任开发原则来讲, ...

  10. Django 模型Model层2

    多表操作 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对 ...

最新文章

  1. 95行代码实现最大熵模型训练
  2. SecureCRT中文绿色免安装版修改字体颜色
  3. 配置密码分布式集群环境hadoop、hbase、zookeeper搭建(全)
  4. python处理excel大数据-Python实现大数据收集至excel的思路详解
  5. python中常用的模块二
  6. 【OS学习笔记】十九 保护模式六:保户模式下操作系统内核如何加载用户程序并运行
  7. oracle rdbms 占内存_027、Oracle数据库
  8. python nums函数获取结果记录集有多少行记录_python3 数据挖掘之pandas学习记录(一)-----NumPy...
  9. 商汤研究院-SpringAutoML团队招聘啦~
  10. 随想录(编写简单资源管理代码)
  11. java web流量阀值_Javaweb应用使用限流处理大量的并发请求详解
  12. java进阶学习 --java网络编程一(转)
  13. MacbookAir2011用U盘重装10.13.6High Sierra系统
  14. 蓝桥杯科学素养题(2020年12月-2021年12月)
  15. 浅谈机器视觉的相机,镜头选型和打光
  16. adb常用命令|修改build.porp文件
  17. php mysql插入的数据有引号,PHP引号转义中解决POST,GET,Mysql数据自动转义问题
  18. UGUI事件传递流程解析
  19. 结束语-放弃完美主义,执行力就是限时限量认真完成
  20. 哈工大计算机系统大作业——hello P2P

热门文章

  1. JavaScript Array forEach
  2. PAT-BASIC-1003-我要通过!
  3. FileUpload上传图片提示 “GDI+中发生一般性错误”
  4. SharePoint【Site Definition 系列】-- 04. 相对快捷地创建List Definition的Schema.xml文件
  5. 小程序入门学习18--springboot环境配置02
  6. 网站被攻击拿下—只因为程序员一个文件上传功能没写好
  7. function在mysql里总是出错_如何在MySQL函数中引发错误
  8. 自动出报表,零代码做驾驶舱,我找到了Excel的顶级替代
  9. 帆软报表决策系统重置用户密码插件
  10. 贵大计算机考研情侣,贵大计算机研究生怎么样?