关于把持久化对象放到api的设计合理性

Blade 未结 2 729
bluerose
bluerose 2022-10-26 09:55

老大,想请教一下关于这个点。目前bladex是把entity放在api module里的,我觉得有点奇怪。

因为我认为不管是对于DDD还是分层开发来说,持久化对象不应该出现在api module里呢。现在的entity里的对象,实际上是承载的表的映射,所以我定义为持久化层。直接用这个对象来承载api里的数据传输对象,这样合理吗?是否应该单独抽出dto对象来承载,entity是否应该收纳到service module内还不是api module内呢?烦请老大解释一下设计想法,谢谢。


bladex里截图如下

企业微信截图_16667487113277.png

2条回答
  •  admin
    admin (楼主)
    2022-10-26 11:34

    你也可以分的特别细,单独列一个dto包出来,然后再列一个vo包。

    通过mapper查询后得到entity,然后转换得出dto,最后controller返回类转换成vo,虽然可能这三个类的字段都是一模一样的,但是为了分层清晰,还是需要做三次转换的。

    这个具体看公司规定,有些情况是可以稍微妥协一下的,这样不会让代码复杂,也不会花费更多时间。

提交回复