讨论下Java开发中模型领域对象划分。

best-flag 2020-01-13 07:53:12
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。
DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。
PO(PersistentObject):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。
个人觉得,以上四个并不能满足开发需求,比如:封装一些公用业务逻辑处理,它是controller、service、dao三层之外的,应归于什么层?common?感觉不合适。。。假如层级设计好了,那么,业务逻辑的接收参数的模型领域是什么?返回的处理结果又是什么?
头大。。。。
...全文
165 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona1984 2020-01-14
  • 打赏
  • 举报
回复
凡事有个度,符合你们项目实际情况就行了,有些东西需要慢慢调整的,比如一开始是个单体应用,前端用jsp,那我们没什么好讲究,后来搞微服务,那就需要entity,dto什么的. 当原有设计开始制约生产力的时候,就是开始要调整的时候了
stacksoverflow 2020-01-14
  • 打赏
  • 举报
回复
这个讨论没有什么意义。可以的去分层只会让项目变得四不像。 首先因为orm的关系,基本上po是肯定需要的。 然后外部接口肯定要做对象,具体什么o不重要。 最后项目越大分层越多,完全根据公司业务和架构来, 小项目不需要按大项目的方法做。 杀鸡用小刀,杀牛用牛刀即可。
yn_leopard 2020-01-14
  • 打赏
  • 举报
回复
在中小型项目开发当中,有时候图简单方便,往往一个PO就贯穿了。
开拓者Amadues 2020-01-14
  • 打赏
  • 举报
回复
概念由不同的人提出,所以命名有所不同,但实际内容是大同小异的,都是一个业务实体或者业务对象,然后在不同的层级有一些微小的区别。 你说的“公用业务逻辑处理”能具体举个例子么。 业务逻辑的接收参数的模型领域,按照你所描述的几个概念,应该就是你说的DO了。
best-flag 2020-01-13
  • 打赏
  • 举报
回复
希望大家能把工作中总结出来的想法拿出来,讨论一下。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧