Add all 23 GoF design pattern implementations (2026-06-13)
This commit is contained in:
37
03-behavioral/strategy/Main.java
Normal file
37
03-behavioral/strategy/Main.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package strategy;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* Strategy Design Pattern — Runnable Demo
|
||||
* Run: javac strategy/*.java -d out/strategy && java -cp out/strategy strategy.Main
|
||||
* Article: https://ankurm.com/strategy-design-pattern-java/
|
||||
*/
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("=== Strategy Design Pattern Demo ===\n");
|
||||
|
||||
int[] data = {64, 34, 25, 12, 22, 11, 90};
|
||||
System.out.println("Input: " + Arrays.toString(data));
|
||||
|
||||
Sorter sorter = new Sorter(new BubbleSort());
|
||||
System.out.println("\n-- BubbleSort --");
|
||||
System.out.println("Sorted: " + Arrays.toString(sorter.sort(data)));
|
||||
|
||||
sorter.setStrategy(new MergeSort());
|
||||
System.out.println("\n-- MergeSort --");
|
||||
System.out.println("Sorted: " + Arrays.toString(sorter.sort(data)));
|
||||
|
||||
sorter.setStrategy(new QuickSort());
|
||||
System.out.println("\n-- QuickSort --");
|
||||
System.out.println("Sorted: " + Arrays.toString(sorter.sort(data)));
|
||||
|
||||
System.out.println("\n-- Runtime strategy selection (simulating large dataset) --");
|
||||
int size = 10_000;
|
||||
SortStrategy chosen = size > 1000 ? new QuickSort() : new BubbleSort();
|
||||
sorter.setStrategy(chosen);
|
||||
System.out.println(" Chose " + chosen.getName() + " for size=" + size);
|
||||
|
||||
System.out.println("\n=== Demo complete ===");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user