课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
数据类型是程序员在学习Java编程开发语言的时候需要重点掌握的一个编程知识点,而本文我们就通过案例分析来简单了解一下,Java编程数据建模应用分析。
但在现实中,我们的程序通常使用相对简单的数据,这些数据通常来自“外部世界”,我们不能指望它完全与Java的类型系统相匹配。
当我们在建模复杂的实体或编写像java.util.stream这样的库时,OO技术为我们提供了很多东西。但是,当我们在构建处理普通数据的简单服务时,面向数据编程技术可能会为我们提供一条更直接的路径。类似地,在跨API边界交换复杂的结果时(例如我们的匹配结果示例),使用ADT定义一个特别的数据模式通常比将结果和行为交织成一个有状态的对象更加简单和清晰(JavaMatcherAPI就是这样做的)。
OOP和面向数据编程技术并不矛盾,它们分别针对不同的粒度和场景。我们可以根据具体情况随意混合搭配。
无论是建模一个简单的返回值,还是一个更复杂的领域(如JSON或我们的表达式树),都有一些简单的原则可以让我们得到简单、可靠的面向数据的代码。
只对数据建模。使用记录类对数据进行建模,每个记录类只建模一项内容,明确每个记录类的内容,并为组件选择明确的名字。如果存在多个选项,比如“纳税申报单要么由纳税人提交,要么由法人代表提交”,将这些选项建模为封印类,并将每个选项建模为一个记录类。记录类的行为应该仅限于从数据本身实现派生量,比如格式化。
数据是不可变的。如果我们想要对数据建模,就不应该担心数据会发生变化。记录类为我们提供了一些帮助,因为它们是不可变的,但仍然需要一些规则来避免让可变性注入到我们的数据模型中。
在边界处验证数据。在将数据注入系统之前,我们需要确保它们是有效的。这可以在记录类的构造函数中完成(如果验证逻辑被应用在所有的实例上),或者通过从另一个数据源接收数据的边界代码来完成。
让非法状态无法被表示。记录类和封印类让错误的状态无法被表示出来。这比一直要检查数据有效性要好得多!就像不变性消除了程序中许多常见的错误来源一样,避免对无效数据进行建模也起到了类似的作用。这种方法的一个潜在好处是可测试性。当代码的输入和输出是简单且定义良好的数据时,不仅测试代码很容易,而且为生成式测试(通常可以比手动编写测试用例更有效地发现Bug)打开了大门。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。