簡體   English   中英

Java EE 6設計模式

[英]Java EE 6 Design Patterns

我想知道可以在Java EE 6實現中應用的設計模式。

  • MVC。
  • GOF。
  • DAO
  • 持久關系映射
  • CEC
  • 實體控制邊界(ECB)
  • 和許多其他人

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM