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; } }