我有基本的抽象类:
abstract class Graphic
{
abstract void draw(Graphics g);
}
我有 Group 类,它有助于将元素分组到特定的组中。请注意,这个 Group 类内部可以有其他 Group 元素。
class Group extends Graphic
{
private ArrayList<Graphic> children = new ArrayList<Graphic>();
public ArrayList<Graphic> getChildren()
{
return children;
}
public void setChildren(ArrayList<Graphic> children)
{
this.children = children;
}
public void draw(Graphics g)
{
for(Graphic child:children)
{
child.draw(g);
}
}
}
这是也扩展了 Graphic 的 line 类。
class Line extends Graphic {
private Point startPoint = new Point(0,0);
private Point endPoint = new Point(1,1);
public void draw(Graphics g)
{
g.drawLine(startPoint.x, startPoint.y, endPoint.x, cendPoint.y);
}
}
我可以将 Line 元素或另一个 Group 元素添加到 Group 类子列表中,即我可以对组进行分组,这些组也可以有自己的组,每个组也可以有 line 元素,但是我无法确定孩子是否元素是组或线。如何确定元素是组还是线?