gpt4 book ai didi

java - 构建POJO时应该传入还是生成UUID?

转载 作者:行者123 更新时间:2023-11-29 04:52:01 25 4
gpt4 key购买 nike

当创建 POJO 时,由于依赖注入(inject),在构造函数中设置任何属性而不传递它们是不好的做法。

如果您将其中一个字段设置为 UUID 值,是否可以接受在构造时生成和设置?还是应该通过构造函数传入?

或者是否有用于此的通用模式?

最佳答案

出于您已经概述的原因,我肯定会有一个接受 UUID 的构造函数。 (和测试。)

不过,我还会添加一个静态工厂方法,它只接受您真正想要在常规代码中从外部设置的值。所以像这样:

public class Foo {
private final UUID id;
private final Bar bar;

Foo(UUID id, Bar bar) {
this.id = id;
this.bar = bar;
}

public static Foo create(Bar bar) {
return new Foo(UUID.randomUUID(), bar);
}
}

我将构造函数指定为 package-private,这对于测试来说足够宽松(如果您碰巧需要它),并且只留下一种公开可见的方式来创建类的实例。

关于java - 构建POJO时应该传入还是生成UUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35118233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com