如果我要求已經回答的問題,但是找不到參考,我很抱歉。我的問題是放哪個圖層屬於哪個比較器的最佳位置。例如,我需要一個按用戶排序的用戶對象列表,這些用戶對象按照出生日期,姓氏和名字排序。放置比較器的最佳位置
回答
在你的情況下,如果將它放在域類中,並在提取時對它進行排序,意思是有兩種方法(或者更多基於Comaprision類型)在dao上獲得未排序對象列表,例如getUsers()和一個排序列表的方法,例如getSortedUers();當然,你只能有一個排序方法,但如果不需要排序,總是調用一個排序方法是一個頭大的問題。
如果您正在使用的數據庫,那麼最好的辦法是把它在查詢本身排序,使用order by
一般的答案是:這取決於一個地方最需要:-)
把它很多關於您的實際設計和體系結構。一般來說,你可以把它放在你的用戶對象的旁邊,或者放到使用它最多(或專用)的圖層中。
如果比較器是對象固有的(例如它是排序的唯一方法是有意義的),那麼我只在對象上實現Comparable
。
如果比較器是衆多其中的一個(例如Comparator
實例),並且只在特定上下文中才有意義,那麼我會將比較器類放在該層中。
如果一個對象可以用很多方式進行比較,那麼實現Comparable接口可能不是最好的想法。通過這樣做,可以限制比較對象的方法1.採用Person類。你可能想按出生日期或高度對Person對象進行排序,對吧? – user4205580
是的,如果你使用數據庫或一些外部服務,並且可以在那裏排序,那是最好的方法。但是,如果您需要在應用程序中對對象進行排序,則取決於您的架構。有2個變種。如果你只需要排序一次 - 創建匿名類,那麼你不會在這個對象上存儲引用。如果您需要進行多次排序,則可以將其存儲爲類的靜態字段或非靜態字段。
謝謝,但那不是我所抱歉的。 –
- 1. 在AS3中放置事件監聽器的最佳位置
- 2. 最佳位置
- 3. 比較GPS位置
- 4. 比較器最佳實踐
- 5. 哪裏是放置UIViewController的設置代碼的最佳位置;
- 6. 跨瀏覽器比較文檔位置
- 7. 位置管理器獲取和比較位置
- 8. 放置應用程序數據的最佳位置?
- 9. FW/1放置附加功能的最佳位置?
- 10. JQuery:放置html標記處理程序的最佳位置
- 11. 什麼是放置onEnter,onExit回調函數的最佳位置?
- 12. Web API最佳實踐:放置參數的位置?
- 13. 要放置的最佳位置/文件rewrite_rules_array hook
- 14. 在AngularJS中放置Cordova/Phonegap事件的最佳位置
- 15. 在Flex項目中放置原型代碼的最佳位置
- 16. iOS比較地理位置
- 17. iOS比較GPS位置
- 18. 設置UIImageView位置的最佳方式
- 19. Rails 3:放置自定義驗證器類的最佳位置在哪裏?
- 20. 最佳方式放置
- 21. Android獲得最佳位置
- 22. 比較位(一次一個位置)
- 23. 在iOS6的委託比較舊的位置與新位置
- 24. Scrapy中設置記錄器的最佳位置在哪裏?
- 25. R:最佳匹配比較
- 26. 比較當前的位置到其他位置
- 27. 比較多個div的位置
- 28. PostgreSQL中的數組位置比較
- 29. 比較日期時的位置
- 30. 比較我的GPS位置列表 - android
這個問題被標記爲'java'而不是'database'。 –