微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我们可以在Java / Spring应用程序中使用Scala编写的Domain模型吗?

如何解决我们可以在Java / Spring应用程序中使用Scala编写的Domain模型吗?

是否可以使用Spring + Java + Maven项目中用Scala编写的域模型?

在完成了Scott Wlaschin的video关于功能域建模的问题后,提出了这个问题。很想使用Scala来实现其中的一些功能,并将Functional DDD的功能带到我们平凡的旧Spring代码中! ?

任何帮助都会很棒!

解决方法

视频中没有“ ADT魔术”。语言中有强大的类型系统和功能方法。

您可以在某种程度上利用Java的类型系统,还可以使用某些功能库,例如vavr或类似的reactor。它会极大地改善您的代码,但它不会像具有强大类型系统的功能语言(如F#,Haskell,Scala和其他类似ML的语言)那样强大。

如果您想利用Scala的类型系统(它比F#更强大),您几乎应该在所有地方使用Scala,因为类型系统的保证在编译器中。而且您可以使用Scala中的Spring(但我认为这是一个巨大的反模式)。

,

这里有2个部分。 一部分与ADT无关,而与Scala和Java兼容性无关。 用scala编写的所有内容都可以编译为JVM字节码,因此,无论您指的是什么“魔术”,都可以用Java编写,尽管简洁性和可读性要差得多。 因此可用。 第二部分是类型检查器 ADT魔术的一部分是编译时安全检查,例如详尽的匹配检查等等。 当您在Scala中设计的案例类上用Java调用instanceof时,您将无法得到

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?