我正在尝试创建一个用于编辑 SVG 对象的 MVC 应用程序。我有像Circle
, Rectangle
,Text
作为 Model 和,CircleView
作为View 的类。RectangleView
TextView
从 MVC 的角度来看,对于形状的每个实例(例如Circle
)都有一个 View 的实例(例如CircleView
)是否正确?
这意味着对于在画布上绘制的 100 个形状,我将获得 100 个 View 实例。
我正在尝试创建一个用于编辑 SVG 对象的 MVC 应用程序。我有像Circle
, Rectangle
,Text
作为 Model 和,CircleView
作为View 的类。RectangleView
TextView
从 MVC 的角度来看,对于形状的每个实例(例如Circle
)都有一个 View 的实例(例如CircleView
)是否正确?
这意味着对于在画布上绘制的 100 个形状,我将获得 100 个 View 实例。
我认为您误解了 MVC 的概念。您的视图通常是您的画布,而不是您的形状。形状是模型的一部分,您的 XXXView 类不应该存在。
在您的情况下,Model
可以将其理解为一组图形元素。
您的所有图形元素,例如,Circle
必须实现某个界面(例如)。还有一类将使用这些方法。Rectangle
Text
GraphicalElement
View
在你的情况下,我可以GraphicalElement
用方法介绍接口
interface GraphicalElement {
void draw(Graphich g);
}
并且View
会遍历你所有的 GraphicalElement
s来显示它们
for (GraphicalElement ge : setOfElements) {
ge.draw(graphics);
}