55import java .util .Comparator ;
66import java .util .List ;
77
8- public class MergeSortStrategy implements SortingStrategy {
9-
10- @ Override
11- public void sort (List <Client > clients ) {
12- Comparator <Client > comparator = createDefaultComparator ();
13- sortWithComparator (clients , comparator );
14- }
8+ public abstract class AbstractMergeSortStrategy implements SortingStrategy {
159
1610 public void sortWithComparator (List <Client > clients , Comparator <Client > comparator ) {
1711 if (clients == null || clients .size () <= 1 ) {
@@ -23,27 +17,9 @@ public void sortWithComparator(List<Client> clients, Comparator<Client> comparat
2317
2418 @ Override
2519 public String getStrategyName () {
26- return "Merge Sort (сортировка слиянием)" ;
20+ return "Abstract Merge Sort (сортировка слиянием)" ;
2721 }
2822
29- private Comparator <Client > createDefaultComparator () {
30- return new Comparator <Client >() {
31- @ Override
32- public int compare (Client client1 , Client client2 ) {
33- int nameComparison = client1 .getName ().compareTo (client2 .getName ());
34- if (nameComparison != 0 ) {
35- return nameComparison ;
36- }
37-
38- int idComparison = Integer .compare (client1 .getIdNumber (), client2 .getIdNumber ());
39- if (idComparison != 0 ) {
40- return idComparison ;
41- }
42-
43- return client1 .getPhoneNumber ().compareTo (client2 .getPhoneNumber ());
44- }
45- };
46- }
4723 private void mergeSort (List <Client > clients , int left , int right ,
4824 Comparator <Client > comparator ) {
4925
@@ -100,7 +76,6 @@ private void merge(List<Client> clients, int left, int mid, int right,
10076 }
10177 }
10278
103- @ Override
10479 public void sortEvenValuesOnly (List <Client > clients , Comparator <Client > comparator ) {
10580 if (clients == null || clients .isEmpty ()) {
10681 return ;
0 commit comments