Package com.example.renderer.factory
Interface 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);
}
// 其他方法实现...
}
-
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(ExportVisitor visitor) 接受访问者访问,实现访问者模式。 允许外部访问者对图形对象进行操作,而不需要修改图形类本身。void
move
(int dx, int dy) 移动图形的位置。 根据给定的偏移量调整图形的坐标位置,正数表示向右/下移动,负数表示向左/上移动。void
使用指定的渲染器绘制图形。
-
Method Details
-
render
使用指定的渲染器绘制图形。实现类应确保:
- 参数renderer不为null
- 正确调用renderer的对应绘制方法
- 处理渲染器抛出的异常
- Parameters:
renderer
- 用于绘制图形的渲染器实现- Throws:
NullPointerException
- 如果renderer为null
-
move
void move(int dx, int dy) 移动图形的位置。 根据给定的偏移量调整图形的坐标位置,正数表示向右/下移动,负数表示向左/上移动。- Parameters:
dx
- X轴方向的移动距离(像素)dy
- Y轴方向的移动距离(像素)
-
accept
接受访问者访问,实现访问者模式。 允许外部访问者对图形对象进行操作,而不需要修改图形类本身。- Parameters:
visitor
- 用于处理图形的访问者对象,不能为null- Throws:
NullPointerException
- 如果visitor参数为null
-