课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Java编程开发语言随着互联网的不断发展而被越来越多的程序员掌握并应用到不同开发项目之中,而本文我们就通过案例分析来简单了解一下,Java面向数据编程应用实践。
Java的强静态类型和基于类的模型对于较小的程序仍然非常有用,只是发挥作用的方式不同。OOP鼓励我们使用类对业务实体和流程进行建模,而具有更少内部边界的小代码库通常会从使用类来建模数据的方式中获得更多好处。我们的服务负责处理来自外部的请求,例如带有非类型化JSON/XML/YAML有效载荷的HTTP请求。但是,只有简单的服务才会直接使用这种数据。我们希望数字能够被表示成int或long,而不是数字字符串,日期被表示成像LocalDateTime这样的类,列表被表示成集合,而不是用逗号分隔的长字符串。(并且,在处理数据之前,我们希望在边界上对数据进行验证。)
面向数据编程鼓励我们将数据建模为不可变数据,并单独保留包含操作数据的业务逻辑代码。随着小型程序趋势的发展,Java提供了新的工具,可以更容易地将数据建模为数据(记录),直接建模替代实体(封印类),以及灵活地分解多态数据模式(模式匹配)。
面向数据编程鼓励我们将数据建模为不可变数据,而记录类、封印类和模式匹配使这方面的工作变得更容易。但这并不意味着要放弃静态类型。我们可以只使用非类型化的Map和List进行面向数据编程(通常在JavaScript等编程语言中这样做的),但静态类型在安全性、可读性和可维护性方面仍然提供了很多东西,即使我们只对普通数据建模。(无原则的面向数据编程通常被称为“字符串类型”,因为它使用字符串来建模不应该被建模为字符串的东西,如数字、日期和列表。)
记录类、封印类和模式匹配可以组合在一起支持面向数据编程。我们可以用记录类来进行简单的数据建模,用封印类来进行选择建模,模式匹配为我们提供了一种简单且类型安全的方式来处理多态数据。对模式匹配的支持是逐步实现的,一开始只添加了类型测试模式,并且只能在instanceof中使用,然后支持switch中的类型测试模式,Java19中添加了记录类的解构模式。
虽然记录类的语法比较简洁,但它们的主要优点是我们可以干净而简单地对聚合进行建模。与其他的数据建模一样,我们都需要做出创造性的决策,总有一些建模方式比其他的更好。组合使用记录类和封印类还更容易让非法状态变得无法表示,从而进一步提高安全性和可维护性。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。