Add all 23 GoF design pattern implementations (2026-06-13)
This commit is contained in:
26
03-behavioral/visitor/AreaCalculator.java
Normal file
26
03-behavioral/visitor/AreaCalculator.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package visitor;
|
||||
|
||||
/**
|
||||
* Concrete Visitor 1 — calculates area for each shape type.
|
||||
* Area formulas live here, not scattered across shape classes.
|
||||
*/
|
||||
public class AreaCalculator implements ShapeVisitor {
|
||||
|
||||
@Override
|
||||
public void visit(Circle c) {
|
||||
double area = Math.PI * c.getRadius() * c.getRadius();
|
||||
System.out.printf(" Area of %s = %.2f%n", c.getName(), area);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(Rectangle r) {
|
||||
double area = r.getWidth() * r.getHeight();
|
||||
System.out.printf(" Area of %s = %.2f%n", r.getName(), area);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(Triangle t) {
|
||||
double area = 0.5 * t.getBase() * t.getHeight();
|
||||
System.out.printf(" Area of %s = %.2f%n", t.getName(), area);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user