nic*_*las 6 java design-patterns java-ee ecb-pattern
我想知道可以在Java EE 6实现中应用的设计模式.
JPA是否取消了DAO的使用?
请提供可以学习的其他模式.
squ*_*ull 12
这里有一个很好的参考:http://martinfowler.com/eaaCatalog/
也在这里:http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html
此外,JPA不一定消除对DAO层的需求.相反,您的DAO层仍然可能在finder方法中构建JPA查询,并返回这些查询返回的实体.
你可以消除DAO层,而是直接在你的业务层内点击JPA实体,但个人仍然喜欢维护一个单独的持久性(DAO)和业务层,特别是在我最终不得不混淆一些JPA的情况下普通的JDBC等
有辩论的大汇总这里.最好的答案是它取决于.如果您的应用程序很复杂,并且您可能在某些情况下直接访问JDBC(因为JPA和ORM工具不是所有内容的答案,并且在某些方面非常糟糕),或者您需要从仅提供数据的来源提取数据与ORM配合得很好,无论如何你都需要一个DAO层,所以在我看来,我宁愿保持一致,并为所有东西使用DAO层.它通常不那么复杂,它将您的业务逻辑与持久性逻辑隔离开来,我认为这是一件好事.但是,这是个人偏好的问题,如果你的应用程序非常简单,它可能有点过分.
有可与JPA使用泛型DAO模式的一个很好的建议在这里.这使您可以获得DAO的好处,因为您可以始终为特定的DAO覆盖它,同时保持更标准和典型的数据库交互更简单.
如果您使用 Java EE 6(而不是 Java EE 5),那么在 J2EE 中使用的任务就不再需要某些技术 J2EE 模式。
例如,使用注入而不是ServiceLocator。
@参见http://pawelstawicki.blogspot.com/2010/07/review-real-world-java-ee-patterns.html
GOF 模式仍然需要,因为它们(仅)与 Java EE 无关。
一般来说:模式有一个意图:它们希望为问题提供一个解决方案/最佳实践,并具有由环境提供的一组给定功能(在您的情况下:它是 Java、Java EE 6,...)