25 lines
641 B
Java
25 lines
641 B
Java
package strategy;
|
|
|
|
import java.util.Arrays;
|
|
|
|
/**
|
|
* Context — uses a SortStrategy. The strategy can be swapped at runtime.
|
|
* Sorter doesn't care which algorithm is used; it just calls sort().
|
|
*/
|
|
public class Sorter {
|
|
private SortStrategy strategy;
|
|
|
|
public Sorter(SortStrategy strategy) { this.strategy = strategy; }
|
|
|
|
public void setStrategy(SortStrategy strategy) {
|
|
System.out.println(" Switching to: " + strategy.getName());
|
|
this.strategy = strategy;
|
|
}
|
|
|
|
public int[] sort(int[] data) {
|
|
int[] copy = Arrays.copyOf(data, data.length);
|
|
strategy.sort(copy);
|
|
return copy;
|
|
}
|
|
}
|