ShapeFactoryImpl.java
package com.example.renderer.factory;
/**
* ShapeFactory接口的默认实现类
*/
public class ShapeFactoryImpl implements ShapeFactory {
@Override
public Circle createCircle(int x, int y, int radius) {
if (radius <= 0) {
throw new IllegalArgumentException("圆的半径必须为正数 (当前值: " + radius + ")");
}
Circle circle = new Circle(x, y, radius);
System.out.printf("[INFO] 创建圆形 - 位置: (%d,%d), 半径: %d\n", x, y, radius);
return circle;
}
@Override
public Rectangle createRectangle(int x, int y, int width, int height) {
if (width <= 0 || height <= 0) {
throw new IllegalArgumentException(
String.format("矩形的宽高必须为正数 (width=%d, height=%d)", width, height));
}
return new Rectangle(x, y, width, height);
}
@Override
public Triangle createTriangle(int x1, int y1, int x2, int y2, int x3, int y3) {
System.out.printf("[INFO] 创建三角形 - 顶点: (%d,%d), (%d,%d), (%d,%d)\n",
x1, y1, x2, y2, x3, y3);
return new Triangle(x1, y1, x2, y2, x3, y3);
}
@Override
public Ellipse createEllipse(int x, int y, int width, int height) {
return new Ellipse(x, y, width, height);
}
}