immutables:我们应该使用Interface还是ImmutableValueObject

时间:2017-04-03 07:21:13

标签: java immutables-library

问题是关于使用immutables java库。

在他们的文档中,他们似乎只使用ImmutableValueObject构造实例,然后在代码中使用ValueObject(接口或抽象基类),如下所示:

ValueObject valueObject =
    ImmutableValueObject.builder()
        .name("My value")
        .addCounts(1)
        .addCounts(2)
        .build();

始终只使用ImmutableValueObject

会不会更好

e.g:

ImmutableValueObject valueObject =
    ImmutableValueObject.builder()
        .name("My value")
        .addCounts(1)
        .addCounts(2)
        .build();

特别是对于方法参数等,ValueObject不保证不变性(例如某人可能只是将ValueObject子类化并传递可变实例。)

通常,我想使用一个接口,因为我可以在我的测试中使用不同的实现。但是在一个不可变对象(它只是一个数据对象)的情况下,我不需要这个:在测试中我只是按照它应该的方式准备我的对象。

还有其他原因,我错过了吗?

0 个答案:

没有答案