Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 您应该为域模型使用实体bean吗_Java_Domain Driven Design_Ejb 3.0_Ejb 3.1_Anemic Domain Model - Fatal编程技术网

Java 您应该为域模型使用实体bean吗

Java 您应该为域模型使用实体bean吗,java,domain-driven-design,ejb-3.0,ejb-3.1,anemic-domain-model,Java,Domain Driven Design,Ejb 3.0,Ejb 3.1,Anemic Domain Model,由于JavaEE世界中的新改进,设计模式的负载被弃用,DTO在很大程度上是不受欢迎的 但是,我不希望数据库的关系结构决定客户机(web应用程序)如何使用EJB中的服务。由于技术发展的方式,我认为在大约5年的时间里,随着光纤技术和其他不可想象的技术成为现实,试图彻底改造UI的工作正在完成。因此,我希望业务逻辑被完全封装,以允许在需要时轻松地更改UI 考虑到这一点,我正在开发一个纯api来表示业务模型和服务,以便客户可以使用它 然而,为了将实体bean转换成这个API,我必须一直编写转换器。这是正确

由于JavaEE世界中的新改进,设计模式的负载被弃用,DTO在很大程度上是不受欢迎的

但是,我不希望数据库的关系结构决定客户机(web应用程序)如何使用EJB中的服务。由于技术发展的方式,我认为在大约5年的时间里,随着光纤技术和其他不可想象的技术成为现实,试图彻底改造UI的工作正在完成。因此,我希望业务逻辑被完全封装,以允许在需要时轻松地更改UI

考虑到这一点,我正在开发一个纯api来表示业务模型和服务,以便客户可以使用它

然而,为了将实体bean转换成这个API,我必须一直编写转换器。这是正确的做法还是我忽略了工程

欢迎您的反馈和意见

注意。该项目使用完整的JavaEE6平台

关于最佳的执行方式,存在着相互冲突的“宗教信仰”。一、 和您一样,您更喜欢面向对象的解决方案,这意味着DB行(实体)不等于业务域对象。那么,该怎么办

我建议您使用典型的工具(例如Hibernate或Spring)来填充持久层中的实体。然后,使用代理在DB和域层类/对象之间移动状态


在EJB3中标记实体bean?你是说JPA实体吗?应该已经提到,你可以在这里阅读更多:谢谢你的回复。我也认为我所做的是最合乎逻辑的事情。我只会注意,看看我是否发现了任何不足或多余的东西,并相应地重构转换器。当然,我也在努力寻找最佳解决方案。在某些情况下,您可以使用继承。基类是公共类,子类是内部使用的类。这将允许您隐藏某些内容,但这肯定不是一个完美的解决方案。@Mark这是指您对数据库访问和业务域对象都使用实体bean,还是说我们应该对域对象使用其他结构?