Javaxfx:MVP(监督控制器)必须查看保持对演示者(控制器)的引用
Javaxfx: MVP (Supervising Controller) must view keep reference to presenter (controller)
我想用 JavaFX 实现 MVP(监督控制器)。我研究了互联网上的几个例子,发现该视图保留对演示者的引用。这样对吗?
我认为视图根本不应该知道演示者。尽管视图不保留对模型的引用,但视图和模型 VIEW<->MODEL 之间存在双向数据绑定。以及了解视图(但通过界面与视图一起工作)和模型并处理所有事件的演示者(控制器)。模型既不知道视图也不知道演示者。
我一般是这样解释区别的:
- 如果您的视图引用了模型 and/or a controller/presenter,这表明您的视图至少有一些责任来设置或维护自己。在这种情况下,您的控制器并不完全负责视图,因此您将其称为监督控制器。
- 如果您的视图没有对模型或 controller/presenter 任何内容的引用,则它无法自行执行任何操作并且完全是被动的,因此您使用的是被动视图模式。
如果您使用的是 FXML,您很可能使用的是被动视图,因为 FXML 无法指定任何逻辑(除了控制器的名称 class 和事件处理程序方法的名称)和您的控制器负责设置和维护视图。
我想用 JavaFX 实现 MVP(监督控制器)。我研究了互联网上的几个例子,发现该视图保留对演示者的引用。这样对吗?
我认为视图根本不应该知道演示者。尽管视图不保留对模型的引用,但视图和模型 VIEW<->MODEL 之间存在双向数据绑定。以及了解视图(但通过界面与视图一起工作)和模型并处理所有事件的演示者(控制器)。模型既不知道视图也不知道演示者。
我一般是这样解释区别的:
- 如果您的视图引用了模型 and/or a controller/presenter,这表明您的视图至少有一些责任来设置或维护自己。在这种情况下,您的控制器并不完全负责视图,因此您将其称为监督控制器。
- 如果您的视图没有对模型或 controller/presenter 任何内容的引用,则它无法自行执行任何操作并且完全是被动的,因此您使用的是被动视图模式。
如果您使用的是 FXML,您很可能使用的是被动视图,因为 FXML 无法指定任何逻辑(除了控制器的名称 class 和事件处理程序方法的名称)和您的控制器负责设置和维护视图。