Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MVVM和WPF替代方案_Java_Mvvm_Dependency Injection - Fatal编程技术网

Java MVVM和WPF替代方案

Java MVVM和WPF替代方案,java,mvvm,dependency-injection,Java,Mvvm,Dependency Injection,除了这些技术,还有Java替代方案吗? 我发现数据绑定功能和inotifyproperty改变了大多数用途(以及容器和类似的元素),但是缺少跨平台的.NET让我想到了Java。 你有什么建议?有同等产品吗?实现XAML的人?技术(WPF) 如果您正在为Java平台寻找WPF的替代方案,您应该看看 该技术在以下方面与WPF非常相似: 应用程序用户界面由称为场景图的对象树组成,场景图由节点对象组成(类似于由UIElement对象组成的WPF可视化树) 窗格节点及其衍生工具在概念上类似于WPF布局面

除了这些技术,还有Java替代方案吗? 我发现数据绑定功能和inotifyproperty改变了大多数用途(以及容器和类似的元素),但是缺少跨平台的.NET让我想到了Java。 你有什么建议?有同等产品吗?实现XAML的人?

技术(WPF)

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

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

  • 应用程序用户界面由称为场景图的对象树组成,场景图由
    节点
    对象组成(类似于由
    UIElement
    对象组成的WPF可视化树)
  • 窗格
    节点及其衍生工具在概念上类似于WPF布局面板
  • 可以使用名为FXML的标记创建用户界面,该标记类似于XAML
  • JavaFX提供了表示支持绑定和更改通知的属性的对象(考虑依赖属性)。与依赖属性不同,它们与用户界面技术无关,因此可以由模型类使用
  • 可以使用CSS设置用户界面的样式
看看我对这个问题的回答,它提供了WPF和JavaFX更详细(但仍然是高层次)的比较

设计模式(MVVM)

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


不过,我看到的大多数示例都使用了模型视图演示器模式的变体。现成的JavaFX支持一个非常简单的MVP结构,其中每个视图都与一个“controller”类相关联。这对于小型应用程序来说很好,但实际上并不能提供很好的关注点分离

也许你应该留意一下这部电影。基于WPF和类似JavaFX的描述性UI声明(FXML/XAML)之间的相似性,他们试图采用WPF开发的最佳实践


当然,它支持数据绑定概念,并为视图、viewModel和模型之间的通知实现必要的接口。UI及其UI逻辑(代码隐藏)是通过fxml文件(使用Scene Builder创建)和必需的Java类实现的。有很多好的例子,理解它们的概念并不难,因为它是最纯粹的MVVM模式的严格实现。您所需要的只是在项目依赖项中建立框架。

有人会说WPF最初是无耻地剽窃J2EE的。正如.Net本身是对Java的无耻剽窃(只是使用“static void Main()”和“string”,而不是“static void Main()”和“string”)。IMHO…它可以争论,但不会回答被问到的问题,是吗?WPF作为J2EE的副本?你在抽什么?也看一看