1.把每个菜单项对应的图形都抽象出来, 抽象出一个图形基类, 根据不同的变化派生出子类(如矩形、椭圆)
2.在Doc中用一个对象管理链表管理图形对象,当图形需要重绘或序列化存储时,通过遍历链表对象即可
3. 每个类的职责应该清晰,视图类不应该含有图形类的数据,它应该只用来处理消息响应和他职责范围内的东西,这样加强内聚
4.由于每个图形的绘制也有不同的算法,所以程序也抽象出了绘制基类解耦绘制,绘制基类主要含有消息响应、当前图形类、已用的绘图类列表(static)、当前绘制类(static)、当前绘制类、和FindTool(static)方法查找是否含有此绘制类。
5.在view中通过FindTool(当前绘制类(static))方法找出需要执行哪个绘制类