1

我正在尝试创建一个用于编辑 SVG 对象的 MVC 应用程序。我有像Circle, Rectangle,Text作为 Model 和,CircleView作为View 的类。RectangleViewTextView

从 MVC 的角度来看,对于形状的每个实例(例如Circle)都有一个 View 的实例(例如CircleView)是否正确?

这意味着对于在画布上绘制的 100 个形状,我将获得 100 个 View 实例。

4

2 回答 2

1

我认为您误解了 MVC 的概念。您的视图通常是您的画布,而不是您的形状。形状是模型的一部分,您的 XXXView 类不应该存在。

于 2012-11-02T10:47:50.897 回答
0

在您的情况下,Model可以将其理解为一组图形元素。

您的所有图形元素,例如,Circle必须实现某个界面(例如)。还有一类将使用这些方法。RectangleTextGraphicalElementView

在你的情况下,我可以GraphicalElement用方法介绍接口

interface GraphicalElement {
    void draw(Graphich g);
}

并且View会遍历你所有的 GraphicalElements来显示它们

for (GraphicalElement ge : setOfElements) {
     ge.draw(graphics);
}
于 2012-11-02T10:44:41.630 回答