簡體   English   中英

使用單一綁定在Guice中存儲整個地圖是否被認為是不好的做法?

[英]Is storing an entire map in Guice using a single binding considered bad practice?

我需要存儲一個Map<Integer, User>以便通過ID查找用戶。 在使用Guice之前,我將創建一個UserManager ,它將自身內的地圖合成,並具有2個獲取和設置用戶的功能。

為了避免需要單獨的(可能是poltergeist)包裝器類,創建諸如UserMap extends HashMap<Integer, User>的類UserMap extends HashMap<Integer, User>並將其綁定到單例實例是否被認為是不好的做法? 然后,我可以注入UserMap本身,而無需擔心其他任何事情。 這可能違反了繼承而不是組成……但是考慮到其唯一目的是充當地圖?

是否有其他合適的方法來存儲Map (和其他)類型以進行全局訪問而沒有靜態變量(即,沒有靜態的非Guice UserManager.get(23) )?

我覺得我正在創建的數十個“管理器”類沒有用,只是為現有功能提供了包裝。

我要說的是,擴展HashMap而不是自己做接口將與最佳做法背道而馳。

這里有幾個原因

  • 如果您以后想通過ID從數據庫中獲取用戶,則需要重寫所有與該Map接觸的代碼
  • 使測試更輕松
  • 簡要概述允許哪些操作

最好有一個清晰的界面來定義UserManager的職責,隨着您的應用程序的發展,該職責可能會變得越來越復雜。

暫無
暫無

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

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