我的想法是将每中图形作为一个类,每个图形对象所需的具体数据放到该类中,但是每个图形都必须具有一个Draw函数,因此这个函数应该放到虚拟的基类中去,然后你应该是用另一个类来管理这些图形对象,我用C++来做一下伪码:
class shape{
virtual Draw()=0;
virtual Save()=0;
virtual Move()=0;
virtual Create()=0;
};
class manager{
vector<shape*> m_shape;
bool Add(shape* newshape){m_shape.push_back(newshape);}
Save();
};
class line:public shape
{
CPoint m_point;
Draw();
Save();
Move();
Create();
}