英文:
Java DTO as Data Request Model - scope of model vs layers
问题
TL;DR
我能否在 @Controller
和多个 @Service
中使用同一个数据模型?
假设我有一个 Spring @Controller
,它通过 @RequestBody
接收请求模型,例如 PersonModel model
。我想要注册这个人。
我通过 service.register(personModel)
在端点调用服务。
PersonService 在 register 方法中执行一些操作,例如:
emailService.sendEmail(personModel)
statisticService.register(personModel)
,等等
问题:
如你所见,这个模型在许多不同层次的服务中被使用。这非常方便,但这样做是否可以?或者我应该“克隆”模型,并为每个层次创建一个模型,例如 PersonModelEmail
、PersonModelStatistic
?
非常欢迎提供一些相关书籍或文章的参考资料。
英文:
TL;DR
Can I use one data model for @Controller
and several @Services
?
Imagine I have spring @Controller
, which expects request model via @RequestBody
- eg PersonModel model
. I want to register the person.
I am calling service from endpoint by service.register(personModel)
.
PersonService in the register method do some stuff, eg:
emailService.sendEmail(personModel)
statisticService.register(personModel)
, etc
Question:
As you see, the model is used in many services in many different layers. It's very convenient but is it ok? Or maybe I should "clone" model and create each model per layer, eg PersonModelEmail
, PersonModelStatistic
?
Some references to books or articles would be more than welcome.
专注分享java语言的经验与见解,让所有开发者获益!
评论