[英]Design Patterns in Database Applications with Java (Java EE / Java SE)
[英]Java EE 6 Design Patterns
我想知道可以在Java EE 6實現中應用的設計模式。
JPA是否取消了DAO的使用?
請提供可以學習的其他模式。
這里有一個很好的參考: 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,......)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.