实体(Entity)和模型(Model)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Xumuyang_/article/details/81569746

学习了三层架构之后,就是七层登录。在了解概念和逻辑的过程中,发现有的人说到了实体(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)

展开阅读全文

没有更多推荐了,返回首页