gpt4 book ai didi

java - 在工厂类中使用字段/变量,以便在通过工厂创建的对象之间使用

转载 作者:行者123 更新时间:2023-12-02 06:14:42 25 4
gpt4 key购买 nike

我正在使用Factory来创建我的对象,如下所示,这里MyObjectYourObject类都实现了MyInterface :

public class MyFactory {
public static MyInterface myObject(int value, int commonValue) {
return new MyObject(value, commonValue);
}

public static MyInterface yourObject(String str, int commonValue) {
return new YourObject(str, commonValue);
}
}

我想在工厂级别设置commonValue,而不是在各个方法中将它们作为参数传递,因为使用工厂传递相同的值来创建对象集。另外,一旦我使用工厂创建了一组对象,我想将commonValue重置为其默认值,以便以后默认情况下不会使用先前设置的值。正确的做法是什么?

最佳答案

由于您的 commonValue 可以更改,因此更简洁的方法(恕我直言)将是:

public class MyFactory {
private final int commonValue;
public MyFactory (int commonValue) { this.commonValue = commonValue; }

public MyInterface myObject(int value) {
return new MyObject(value, commonValue);
}

public MyInterface yourObject(String str) {
return new YourObject(str, commonValue);
}
}

当您需要重置它时,只需创建一个新工厂即可。

好处是:

  • 很清楚该值是什么(如果您使用带有 setter 的可变值,某些代码可能会影响不相关的代码)
  • 线程安全

关于java - 在工厂类中使用字段/变量,以便在通过工厂创建的对象之间使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21603172/

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