我有一個對象的列表,我需要在一個標準的每個輸出內對多個標準進行排序。例如具有EmploymentType,CategoryType,DepartmentType,退休日期,employeeid字段的僱員類。所以現在我想在employmentType的基礎上對epmloyee列表進行排序,在這個列表中,我需要根據employeesid中的退休日期內的部門對categoryType進行排序。我只想知道哪些java設計模式可以在這裏使用?這是多種排序的最佳設計模式
-3
A
回答
0
這裏而不是跟隨你需要考慮如何可以遵循的設計原則設計模式:
你的情況,你想各種排序功能添加到您的類。但是,如果你在同一個班上做,它將違反單一責任原則。
說未來需要添加一個新的排序,您將再次對現有的類進行更改,這將違反開放閉包原則。
因此,回到原來的問題,最好的方法是使用比較器。
您可以有像EmploymentTypeComparator,DepartmentTypeComparator等單獨的類。這些類將負責處理排序邏輯。
您可以參考下面的代碼實現的細節:
https://examples.javacodegeeks.com/core-java/util/comparator/java-comparator-example/
+1
另外,可以通過使用Comparator.thenComparing(Java8 +)鏈接比較器來輕鬆實現嵌套排序。 – hoefling
相關問題
- 1. 這種情況的最佳解決方案(設計模式)是什麼?
- 2. 這是哪種JavaScript設計模式?
- 3. 這個問題的最佳設計模式是什麼?
- 4. 這是實現這種圖形設計的最佳方式嗎? (Android)
- 5. 這是編寫這種非數字/字母排序的最佳方式嗎?
- 6. 哪種設計模式最適合這種情況
- 7. 三種類似的API - 最佳設計模式?
- 8. PHP設計模式不是OO,PHP模式最適合這種情況
- 9. 這種設計模式的名稱?
- 10. 此問題的最佳設計模式
- 11. HttpRequestDispatcher的最佳設計模式?
- 12. 格式化數字的最佳設計模式是什麼?
- 13. 什麼是使用Selenium PageObject設計模式的最佳方式
- 14. 什麼是實現Viewholder設計模式的最佳方式。
- 15. 如何改進這種設計(模式)?
- 16. 表設計SystemSettings,最佳模式
- 17. 多種服務的設計模式
- 18. 設計模式 - 這是什麼模式?
- 19. 這是一個多種排序嗎?
- 20. 什麼是服務器設計模式/最佳實踐的最佳來源?
- 21. 使用Performer的這種設計模式的名稱是什麼?
- 22. 這是使用MVVM設計模式創建新窗口的最佳方法
- 23. 哪種設計模式以及如何使用面向對象的這種設計模式設計
- 24. 在這種情況下數據庫設計的最佳方法
- 25. 這是一種常見的設計模式嗎?
- 26. 這種繼承設計模式的名稱是什麼?
- 27. 這是一種既定的設計模式嗎?
- 28. 這種設計模式的名稱是什麼?
- 29. 是否有這種建築規範的設計模式?
- 30. 在Enumerator中使用的這種設計模式是什麼?
這有什麼好做的設計模式。如果你有權訪問這個類,你需要實現一個'Comparable'接口,它將允許你重載一個名爲'compareTo(Object o)'的方法。在Stack Overflow中閱讀這個。 – MaxG