Interface Shape

All Known Implementing Classes:
Circle, Ellipse, Rectangle, Triangle

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);
     }
     // 其他方法实现...
 }
 
Since:
1.0
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    接受访问者访问,实现访问者模式。 允许外部访问者对图形对象进行操作,而不需要修改图形类本身。
    void
    move(int dx, int dy)
    移动图形的位置。 根据给定的偏移量调整图形的坐标位置,正数表示向右/下移动,负数表示向左/上移动。
    void
    render(Renderer renderer)
    使用指定的渲染器绘制图形。
  • Method Details

    • render

      void render(Renderer renderer)
      使用指定的渲染器绘制图形。

      实现类应确保:

      • 参数renderer不为null
      • 正确调用renderer的对应绘制方法
      • 处理渲染器抛出的异常
      Parameters:
      renderer - 用于绘制图形的渲染器实现
      Throws:
      NullPointerException - 如果renderer为null
    • move

      void move(int dx, int dy)
      移动图形的位置。 根据给定的偏移量调整图形的坐标位置,正数表示向右/下移动,负数表示向左/上移动。
      Parameters:
      dx - X轴方向的移动距离(像素)
      dy - Y轴方向的移动距离(像素)
    • accept

      void accept(ExportVisitor visitor)
      接受访问者访问,实现访问者模式。 允许外部访问者对图形对象进行操作,而不需要修改图形类本身。
      Parameters:
      visitor - 用于处理图形的访问者对象,不能为null
      Throws:
      NullPointerException - 如果visitor参数为null