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