我正在使用工厂来创建我的对象,例如,MyObject
和YourObject
类实现了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
重置为其默认值,以便稍后默认不使用先前设置的值。
这样做的正确方法是什么?
答案 0 :(得分:3)
由于你的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);
}
}
当您需要重置它时,只需创建一个新工厂。
好处是:
答案 1 :(得分:-1)
我使用Spring框架来完成那种事情。让我在前面建立我的工厂,然后从他们那里建造。这是一个选择吗?