Java MVVM和WPF替代方案

Alv*_*aro 5 java dependency-injection mvvm

是否有Java替代这些技术?我发现最常用的数据绑定功能和INotifyPropertyChanged(以及类型的容器和元素),但缺乏.NET的跨平台让我想到了Java.你有什么建议?有没有相同的产品?一个实现XAML的?

Ben*_*ale 7

技术(WPF)

如果您正在为Java平台寻找WPF的替代方案,那么您应该看看JavaFX.

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

  • 应用程序用户界面由一个对象树组成,称为由Node对象组成的场景图(类似于由UIElement对象组成的WPF可视树).
  • Pane节点和它的衍生物是概念上类似于WPF布局面板.
  • 可以使用名为FXML的标记创建用户界面,该标记类似于XAML.
  • JavaFX提供了表示支持绑定和更改通知的属性的对象(想想依赖项属性).与依赖属性不同,它们与用户界面技术无关,因此可以由模型类使用.
  • 用户界面可以使用CSS设置样式.

看看我对JavaFx如何与WPF进行比较的问题的答案,WPF提供了更详细(但仍然是高级别)的WPF和JavaFX比较.

设计模式(MVVM)

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

我见过的大多数例子都使用了model-view-presenter模式的变体.开箱即用JavaFX支持一个非常简单的MVP结构,其中每个视图都与一个"控制器"类相关联.这适用于小型应用程序,但实际上并没有提供很好的关注点分离.