Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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 分布式系统中数据传输对象的不变性_Java_Spring_Immutability_Distributed - Fatal编程技术网

Java 分布式系统中数据传输对象的不变性

Java 分布式系统中数据传输对象的不变性,java,spring,immutability,distributed,Java,Spring,Immutability,Distributed,分布式Java系统中的简单数据传输对象(DTO)或值对象(VO)应该保持不变吗 因为云中可能有其他实例用于获取共享对象并进行操作 创建所有或大多数不可变的DTO有什么运行时好处吗?分布式系统中的DTO是不共享的。每个“云中实例”都有自己的副本。这个问题没有多大意义。@JBNizet是的,但是使用Builder模式(这是分布式系统中非常常见的模式)创建不可变对象的目的是什么?不可变对象更容易推理。除了仅用作DTO之外,它们还可以在单个JVM实例内的线程之间共享。构建器可以在构建最终对象之前验证这些

分布式Java系统中的简单数据传输对象(DTO)或值对象(VO)应该保持不变吗

因为云中可能有其他实例用于获取共享对象并进行操作


创建所有或大多数不可变的DTO有什么运行时好处吗?

分布式系统中的DTO是不共享的。每个“云中实例”都有自己的副本。这个问题没有多大意义。@JBNizet是的,但是使用Builder模式(这是分布式系统中非常常见的模式)创建不可变对象的目的是什么?不可变对象更容易推理。除了仅用作DTO之外,它们还可以在单个JVM实例内的线程之间共享。构建器可以在构建最终对象之前验证这些值。二传手不能那样做。最后,DTO用于传输复杂的值,并且值没有理由是可变的。使它们不可改变可以确保它们不会被滥用。