Java 视图是观察实体还是观察服务?

Java 视图是观察实体还是观察服务?,java,model-view-controller,Java,Model View Controller,我已经习惯了Web MVC,现在我第一次用Java实现它,对于视图应该观察到什么,我有点困惑,它应该观察单个实体还是应该观察明显位于实体顶部的服务层,以便在发生更改时服务可以通知视图,然后我的实体也不需要被观察 谢谢。您的视图应该只是对象和服务的表示。它不应该有太多的逻辑,只是一种表示模型的方式。您使用的是什么框架?因为有些人比其他人更鼓励一些实践。如果操作正确,您可能会有两个不同的视图,例如,显示相同的数据但具有不同的表示方式。视图应仅与控制器交互,以避免过多的纠缠。控制器可以是视图的观察者,

我已经习惯了Web MVC,现在我第一次用Java实现它,对于视图应该观察到什么,我有点困惑,它应该观察单个实体还是应该观察明显位于实体顶部的服务层,以便在发生更改时服务可以通知视图,然后我的实体也不需要被观察


谢谢。

您的视图应该只是对象和服务的表示。它不应该有太多的逻辑,只是一种表示模型的方式。您使用的是什么框架?因为有些人比其他人更鼓励一些实践。如果操作正确,您可能会有两个不同的视图,例如,显示相同的数据但具有不同的表示方式。

视图应仅与控制器交互,以避免过多的纠缠。控制器可以是视图的观察者,对视图内部发生的事件作出反应,并将其委托给模型层。视图无论如何都不能修改/操作模型层中的任何内容。应使用控制器提供的数据更新视图。您不应该试图绕过控制器,直接从视图内部转到模型层。这可能很有诱惑力,看起来很合乎逻辑,但最终你会为此付出代价。最终,视图中的逻辑太多,控制器根本没有任何真正的控制。

在MVC中,视图没有观察到模型层吗?我想知道它是否观察实体或您的服务?我目前没有使用任何框架。我试图从头开始做一些基本的事情。你的视图不应该观察任何东西,它应该用来表示你的模型和来自控制器的数据。然而,如果你的意思是如果你的模型改变了,你的观点应该改变,那么在大多数情况下,答案是肯定的。那么,,我想你可以说你的视图正在观察你的模型,但前提是这是你的意思。如果视图没有观察模型层,它如何知道/得到通知,模型层发生了变化,它需要自我更新?@David控制器已经知道这一变化并更新视图。控制器的任务是提取数据并更新模型层,但视图应具有访问模型层的权限,以检索其自己的数据,否则视图将依赖控制器获取其数据,而MVC的设计方式并非如此。我曾经在控制器将数据传递给视图很长一段时间的地方使用它,但后来我学到了更好的方法。@David依赖控制器比依赖控制器+模型层要好得多。视图不需要知道数据来自何处。如果将视图绑定到模型层,则会强制视图知道数据来自何处。知道控制器会更新模型为什么视图会在模型更改时负责更新自身?控制器可以同样轻松地将更新推送到视图中。