如何解决我们可以在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 举报,一经查实,本站将立刻删除。