Java 视图以MVC模式保存模型中的对象,可以吗?

Java 视图以MVC模式保存模型中的对象,可以吗?,java,model-view-controller,Java,Model View Controller,我有一个类,用于保存树的树项。假设构造函数看起来像这样ViewTreeItem(列表项),可以这样调用 for( List l : model.getLists() ) getTree().add( new ViewTreeItem(l) ); My controllerControllerTreeItem使用List item引用直接修改列表,而不是调用model来完成工作 这样更改模型可以吗?如果不是,我可以用另一种方式做吗?假设您的视图正在观察模型,那么: 1) 视图保留对模型的

我有一个类,用于保存树的树项。假设构造函数看起来像这样
ViewTreeItem(列表项)
,可以这样调用

for( List l : model.getLists() )
    getTree().add( new ViewTreeItem(l) );
My controller
ControllerTreeItem
使用
List item
引用直接修改列表,而不是调用model来完成工作


这样更改模型可以吗?如果不是,我可以用另一种方式做吗?

假设您的视图正在观察模型,那么:

1) 视图保留对模型的引用是正常的


2) 您应该通过调用模型中的方法来更改模型,并在调用视图onUpdate(模型模型)时更新视图。

MVC的全部目的是使设计更加灵活。我认为最好在模型中有一个方法,您可以使用它来修改列表,而不是直接修改,因为这将否定使用MVC模式的全部意义。

实际上,此视图没有观察模型,因为调用notify方法时,所有树项都会被销毁和刷新。我只在选择了新列表时才这样做。所有模型方法都应该调用notifyObservators()方法吗?如果在特定情况下不需要通知,他们是否可以不通知。嗯,您只需要在向用户显示数据时通知视图。如果不需要,则无需执行此操作。因为模型保存着系统的状态,所以只在需要显示更新视图时发出通知就足够了。否则,将产生不必要的开销。。