上课:
class Test {
Object1 object1;
Object2 object2;
void setObject2 (Object2 newObject) {
if (object1.someMethod()) {
this.object2 = newObject;
} else {
someOtherMethod();
}
}
}
如何强制对象实例化必须在
object1
之前实例化object2
?现在我可以考虑解决它
1.通过使用
Object2
作为参数构造函数并在那里实例化Test(Object1 object1) {
this.object1 = object1;
}
2.通过尝试设置
object2
的方法抛出异常void setObject2 (Object newObject) {
if (object1 == null) {
throw new Exception();
}
...
还有其他更合适的方法吗?
我需要它的原因是,我必须为区域
Test
创建新的广告活动object1
,以便对该区域的某些站点object2
进行广告宣传。在将网站添加到广告系列之前,我想检查该网站是否属于该地区。 最佳答案
一种更清洁的设计方式是使用Builder模式。这样,您只能以正确的方式设置和创建对象,而不是在运行时获取异常。
程序员无需阅读文档或错误消息即可了解自己需要做什么,因为API本身可以进行“指导”。
关于java - 如何强制Java对象按特定顺序实例化其实例变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40449666/