我开发了一个具有4 层的 Java 应用程序:数据库(MySQL)、持久性(JPA)、业务(类似于 EJB 中的无状态会话 bean 的 POJO)、表示(Java Swing)。
我决定完全解耦表示层和持久层。所以对所有数据的所有修改都是通过业务层完成的。这样,表示层甚至不知道实体类的存在。这也允许会话 bean 更好地控制传递的数据,因为有时会话 bean 需要在更改实体之前验证或转换从表示接收的值。
然而,有时会话 bean 需要向调用者发送大量信息(如具有大量属性的实体列表)。这变得复杂了,因为根据我采用的会话 bean 的设计,需要将所有这些实体解包到其他东西中。我试图将实体列表转换为数组列表(其中数组的每个成员对应于实体中的一个属性),但这对我来说似乎存在缺陷、容易出错且效率低下。
将数据发送到演示文稿的正确方法是什么?将实体隐藏在会话 bean 后面的概念是否有意义?此类应用程序中的常见模式是什么?