Java MVVM 和 WPF 替代方案

5

这些技术有没有Java的替代品?我发现数据绑定能力和大多数人使用的INotifyPropertyChanged(以及容器和元素之类的东西)最有用,但是.NET的跨平台性不足使我想到了Java。你有什么建议吗?是否有任何等效的产品?有没有实现XAML的产品呢?


有人可以认为WPF最初是J2EE的一个无耻抄袭。就像.Net本身是Java的一个无耻抄袭(只是使用“static void Main()”和“string”,而不是“static void main()”和“String”)。在我看来... - paulsm4
7
可以这样认为,但这并不能回答所提出的问题,不是吗? - Benjamin Gale
2
WPF作为J2EE的副本?你在吸什么东西? - Paolo
请看 https://dev59.com/eXI-5IYBdhLWcg3wF0Uc。 - Patrick
2个回答

7

技术(WPF)

如果你正在寻找Java平台上的WPF替代品,你应该看看JavaFX

这项技术在以下方面与WPF非常相似:

  • 应用程序用户界面由称为场景图的对象树组成,其中包括Node对象(类似于由UIElement对象组成的WPF可视化树)。
  • Pane节点及其派生类在概念上类似于WPF布局面板。
  • 可以使用名为FXML的标记创建用户界面,类似于XAML。
  • JavaFX提供表示支持绑定和更改通知的属性的对象(类似于依赖属性)。与依赖属性不同的是,它们不与用户界面技术绑定,因此可以被您的模型类使用。
  • 用户界面可以使用CSS进行样式设置。

请查看我的回答如何比较JavaFx和WPF,其中提供了WPF和JavaFX的更详细(但仍然是高级别的)比较。

设计模式(MVVM)

MVVM模式是展示模型模式的一个特化。在JavaFX中可以创建这个模式的变体,因为平台提供支持绑定的属性,并且展示模型基本上是封装模型状态并提供操作该状态的对象。

我看到的大多数示例都使用了一种变体的模型-视图-控制器模式。JavaFX开箱即用支持非常简单的MVP结构,其中每个视图都与一个“控制器”类相关联。这对于小型应用程序来说很好,但并不能真正提供良好的关注点分离。


2
也许你应该关注一下令人惊叹的MVVMFX Framework。基于WPF和JavaFX之间的相似之处,例如描述性UI声明(FXML / XAML),他们试图采用最佳的WPF开发实践。它当然支持数据绑定概念,并实现了视图、ViewModel和模型之间的必要接口通知。UI及其UI逻辑(代码后台)是通过fxml文件(使用Scene Builder创建)和必需的Java类实现的。由于有许多好的例子,理解他们的概念并不难,因为它是最纯粹的MVVM模式的严格实现。你所需要做的就是在项目依赖中建立框架。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接