entity包、model包、domain包的区别

(1)、entity(实体)

entity的意思就是实体的意思,所以也是最常用到的,entity包中的类是必须和数据库相对应的,比如说:数据库有个user表,字段有long类型的id,string类型的姓名,那么entity中的user类也必须是含有这两个字段的,且类型必须一致。不能数据库存的是long类型,user类里的属性是string类型。这样做的好处是保持实体类和数据库保持一致,另外,当用到hibernate或是mybatie框架来操作数据库的时候,操作这个实体类就行,写sql文之前不需要再做数据格式处理。

(2)、model(模型)

model大家不陌生,都知道是模型的意思,当用model当包名的时候,一般里面存的是实体类的模型,一般是用来给前端用的。比如:前端页面需要显示一个user信息,user包含姓名,性别,居住地,这些信息存在数据库的时候,姓名直接存姓名,但是性别和居住地一般会用数据字典的编号存到数据库,比如:111代表男,222代表女,数据库存的就是111或222,如果用entity的话,把111、222前端都不知道是什么玩意,就算前端知道111代表男,222代表女,写了一个js判断数据处理。后来数据库变动了,111代表女,222代表男,前端的js又需要重新写,很显然这样不利于维护。所以就需要model来解决,后台从数据库取了数据转化为前端需要的数据直接传给前端,前端就不需要对数据来处理,直接显示就行了。还有一种情况,数据库里面的user表字段有十个,包含姓名,qq,生辰八字乱七八糟的等,但是前台页面只需要显示姓名,如果把entity全部传给前台,无疑传了很多没用的数据。这时候model就很好的解决了这个问题,前台需要什么数据,model就包含什么数据就行了

(3)、domain(域)

domain这个包国外很多项目经常用到,字面意思是域的意思。范围有点广了,比如一个商城的项目,商城主要的模块就是用户,订单,商品三大模块,那么这三块数据就可以叫做三个域,domain包里就是存的就是这些数据,表面上这个包和entity和model包里存的数据没什么区别,其实差别还是挺大的,特别是一些大型的项目。比如一个招聘网站的项目,最重要的对象就是简历了,那么简历是怎么存到数据库的呢,不可能用一张表就能存的,因为简历包含基本信息和工作经验,项目经验,学习经验等。基本信息可以存在简历表,但是涉及到多条的就不行,因为没人知道有多少条工作经验,项目经验,所以必须要单独建工作经验表和项目经验表关联到简历基本信息表。但是前台页面是不关心这些的,前台需要的数据就是一个简历所有信息,这时就可以用到domain来处理,domain里面的类就是一个简历对象,包含了简历基本信息以及list的工作经验,项目经验等。这样前端只需要获取一个对象就行了,不需要同时即要获取基本信息,还要从基本信息里面获取工作经验关联的简历编号,然后再去获取对应的工作经验了。
当然,如果用model的话也是可以达到domain的效果的。这个完全是看个人喜好和项目的整体架构,因为创建不同的package的作用本来也就是想把项目分成不同的层,便于管理和维护。如果你乐意,你可以创建entity包,然后在里面存图片,创建images文件夹,里面存js。你已经看懂就行,前提是如果是团队开发的话能保证别人不打你。这个和语言一个道理,你在200面前和英国人说:private void set(int age),人家说:滚犊子;现在你这样说,人家就知道是java语言了。能被人们通用的才叫语言,你说的别人听不懂那只能算是鸟语。所以开发的时候,建类建包的命名规则规范性还是很重要的。

总结

那么三句话总结下entity、model、domain的不同:

  • 1.entity字段必须和数据库字段一样
  • 2.model前端需要什么我们就给什么
  • 3.domain很少用,代表一个对象模块
  • 28
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Summary Entity Framework Core in Action teaches you how to access and update relational data from .NET applications. Following the crystal-clear explanations, real-world examples, and around 100 diagrams, you'll discover time-saving patterns and best practices for security, performance tuning, and unit testing. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology There's a mismatch in the way OO programs and relational databases represent data. Entity Framework is an object-relational mapper (ORM) that bridges this gap, making it radically easier to query and write to databases from a .NET application. EF creates a data model that matches the structure of your OO code so you can query and write to your database using standard LINQ commands. It will even automatically generate the model from your database schema. About the Book Using crystal-clear explanations, real-world examples, and around 100 diagrams, Entity Framework Core in Action teaches you how to access and update relational data from .NET applications. You'l start with a clear breakdown of Entity Framework, long with the mental model behind ORM. Then you'll discover time-saving patterns and best practices for security, performance tuning, and even unit testing. As you go, you'll address common data access challenges and learn how to handle them with Entity Framework. What's Inside Querying a relational database with LINQ Using EF Core in business logic Integrating EF with existing C# applications Applying domain-driven design to EF Core Getting the best performance out of EF Core Covers EF Core 2.0 and 2.1
好的,对于你的问题,我可以解答如下: 在Java中,POJO、DTO、VO、EntityDomain以及Model这些概念都是关于数据传输和数据持久化的概念。它们的区别主要在于抽象程度、作用范围以及使用场景。 1. POJO(Plain Old Java Object) POJO是一个纯粹的Java对象,它没有继承任何特殊的类或实现特定的接口。它是一个简单的数据载体,通常用于数据传输和数据交换,而不含具体的业务逻辑。 2. DTO(Data Transfer Object) DTO通常用于跨越不同层之间进行数据传输,它是一个封装和传输数据的对象,通常不含任何业务逻辑。 3. VO(Value Object) VO通常用于封装表示某个数据的不同属性,可以形象理解为含了若干个属性的“数据”,通常用于在不同层之间进行数据传输。 4. Entity Entity是一个具有特殊含义的对象,它在领域模型中代表了真正的业务实体,在数据库中通常对应一张表。Entity除了含属性之外,还含了与业务相关的方法,通常被用于数据存储和业务逻辑的处理。 5. Domain Domain是一个非常广泛的概念,通常表示业务领域、业务范畴或者业务意义上的"域"。在软件设计中,Domain指的是领域模型中的类或者对象,它们和业务领域中的实体或者概念直接相关。 6. Model Model通常是指一个数据模型或者一个领域模型,它是抽象出来的对业务问题的通用描述。Model本身不含任何业务逻辑,它主要是为了让开发者可以更好地理解业务领域,对业务问题进行抽象建模。 在使用上,一般来讲: 1. POJO用于数据传输。 2. DTO用于跨越不同层之间进行数据传输。 3. VO用于封装某个数据的不同属性,进行数据传输。 4. Entity用于数据存储和业务逻辑的处理。 5. Domain用于领域模型中的设计。 6. Model用于通用的业务问题抽象建模。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值