2016-06-21 29 views
-3

我有一個對象的列表,我需要在一個標準的每個輸出內對多個標準進行排序。例如具有EmploymentType,CategoryType,DepartmentType,退休日期,employeeid字段的僱員類。所以現在我想在employmentType的基礎上對epmloyee列表進行排序,在這個列表中,我需要根據employeesid中的退休日期內的部門對categoryType進行排序。我只想知道哪些java設計模式可以在這裏使用?這是多種排序的最佳設計模式

+1

這有什麼好做的設計模式。如果你有權訪問這個類,你需要實現一個'Comparable'接口,它將允許你重載一個名爲'compareTo(Object o)'的方法。在Stack Overflow中閱讀這個。 – MaxG

回答

0

這裏而不是跟隨你需要考慮如何可以遵循的設計原則設計模式:

你的情況,你想各種排序功能添加到您的類。但是,如果你在同一個班上做,它將違反單一責任原則。

說未來需要添加一個新的排序,您將再次對現有的類進行更改,這將違反開放閉包原則。

因此,回到原來的問題,最好的方法是使用比較器。

您可以有像EmploymentTypeComparator,DepartmentTypeComparator等單獨的類。這些類將負責處理排序邏輯。

您可以參考下面的代碼實現的細節:

https://examples.javacodegeeks.com/core-java/util/comparator/java-comparator-example/

+1

另外,可以通過使用Comparator.thenComparing(Java8 +)鏈接比較器來輕鬆實現嵌套排序。 – hoefling

相關問題