簡體   English   中英

接口層次結構

[英]Hierarchy of interfaces

用Java創建接口層次結構是否被認為不好?

我已經這樣設計我的存儲庫層:

  • Repository ,包含CRUD方法
  • JPARepository ,僅在JPA中需要的潛在方法
  • SomeModelRepository ,該模型的存儲庫的特定方法。
  • SomeModelJPARepository ,擴展JPARepository和SomeModelRepository

這被認為是不好的做法嗎?它是一個奇怪的有組織的等級制度嗎?

不,實際上,至少在庫中創建接口層次結構是相當普遍的。 NavigableSet為例,它上面有4層接口(SortedSet,Set,Collection,Iterable)。

在此示例中,鑽石繼承有點特殊,但是如果需要的話,這本身並不是一個壞選擇。 但是通常,樹的層次結構更加清晰,更好。 在這種情況下,我將考慮進行以下任一操作:

  1. SomeModelRepository是JPARepository的子類,因此強制所有實現類都支持JPA
  2. 在不同的接口而不是Repository的子類中指定JPA支持。 然后,所有類都可以選擇是否獨立於其特定的Repository接口來實現JPA。 有關示例,請參見可序列化 這是用於發出信號的類的事實解決方案,該類支持某種特定功能,例如“序列化”或“持久性”(在這種情況下)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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