使用多态和策略模式来减少if语句的使用。例如,下面的代码使用策略模式来计算各种形状的面积,而不使用大量的if语句。
interface Shape {
double calculateArea();
}
class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double calculateArea() {
return Math.PI * radius * radius;
}
}
class Rectangle implements Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double calculateArea() {
return length * width;
}
}
class AreaCalculator {
private Shape shape;
public AreaCalculator(Shape shape) {
this.shape = shape;
}
public double calculateArea() {
return shape.calculateArea();
}
}
public class Main {
public static void main(String[] args) {
Shape circle = new Circle(5);
Shape rectangle = new Rectangle(5, 10);
AreaCalculator circleCalculator = new AreaCalculator(circle);
AreaCalculator rectangleCalculator = new AreaCalculator(rectangle);
System.out.println("Circle area: " + circleCalculator.calculateArea());
System.out.println("Rectangle area: " + rectangleCalculator.calculateArea());
}
}