接口 Shape
public interface Shape
Shape接口定义了所有图形对象的基本行为。
作为图形系统的核心接口,它支持以下操作:
- 渲染 - 通过render(Renderer)方法
- 移动 - 通过move(int, int)方法
- 访问者模式 - 通过accept(ExportVisitor)方法
该接口遵循以下设计模式:
- 桥接模式 - 通过Renderer参数实现绘制逻辑的解耦
- 访问者模式 - 通过accept方法支持对图形的扩展操作
- 命令模式 - move方法支持图形位置的变更操作
典型实现示例:
public class Circle implements Shape {
public void render(Renderer r) {
r.drawCircle(x, y, radius);
}
// 其他方法实现...
}
-
方法概要
修饰符和类型方法说明void
accept
(ExportVisitor visitor) 接受访问者访问此图形对象。clone()
创建并返回当前图形的一个深拷贝void
move
(int dx, int dy) 移动图形的位置。void
使用指定的渲染器绘制图形。default void
validatePosition
(int x, int y) 验证坐标位置是否有效
-
方法详细资料
-
render
void render(Renderer renderer) throws NullPointerException, IllegalArgumentException, IllegalStateException 使用指定的渲染器绘制图形。- 参数:
renderer
- 用于绘制图形的渲染器实现(非null)- 抛出:
NullPointerException
- 如果renderer参数为nullIllegalArgumentException
- 如果图形参数不合法IllegalStateException
- 如果图形状态不适合渲染- 从以下版本开始:
- 2025-06-24
-
clone
创建并返回当前图形的一个深拷贝- 返回:
- 图形的新副本
- 抛出:
CloneNotSupportedException
- 如果图形不支持克隆
-
validatePosition
default void validatePosition(int x, int y) 验证坐标位置是否有效- 参数:
x
- x坐标y
- y坐标- 抛出:
IllegalArgumentException
- 如果坐标为负数
-
move
void move(int dx, int dy) 移动图形的位置。- 参数:
dx
- X轴方向的移动距离(像素)dy
- Y轴方向的移动距离(像素)- 从以下版本开始:
- 2025-06-24
-
accept
接受访问者访问此图形对象。- 参数:
visitor
- 用于处理图形的访问者对象(非null)- 抛出:
NullPointerException
- 如果visitor参数为null- 从以下版本开始:
- 2025-06-24
-