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