Add all 23 GoF design pattern implementations (2026-06-13)

This commit is contained in:
Ankur
2026-06-13 21:44:56 +05:30
commit a5beb61425
106 changed files with 2977 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
package visitor;
import java.util.List;
/**
* Visitor Design Pattern — Runnable Demo
* Run: javac visitor/*.java -d out/visitor && java -cp out/visitor visitor.Main
* Article: https://ankurm.com/visitor-design-pattern-java/
*/
public class Main {
public static void main(String[] args) {
System.out.println("=== Visitor Design Pattern Demo ===\n");
List<Shape> shapes = List.of(
new Circle(5),
new Rectangle(4, 6),
new Triangle(3, 8)
);
System.out.println("-- Area Calculator Visitor --");
ShapeVisitor areaCalc = new AreaCalculator();
for (Shape shape : shapes) {
shape.accept(areaCalc);
}
System.out.println("\n-- Perimeter Calculator Visitor --");
ShapeVisitor perimCalc = new PerimeterCalculator();
for (Shape shape : shapes) {
shape.accept(perimCalc);
}
System.out.println("\n-- Key insight --");
System.out.println("Added PerimeterCalculator without touching Shape, Circle, Rectangle, Triangle.");
System.out.println("To add another operation: write one new Visitor class.");
System.out.println("\n=== Demo complete ===");
}
}