如果我有一个实现构建器设计模式的类,并且我调用的方法实际上具有相互依赖的操作检查,是否有一种方法可以在某个时刻中断其余方法的执行?
示例
public class Test
{
public Test checkOne(int one)
{
if(someCondition==false)
{
//do not continue other builder pattern checks methods (checkTwo)
}
return this;
}
public Test checkTwo(int two)
{
if(someCondition==false)
{
//do not continue other builder pattern checks methods (checkThree)
}
return this;
}
public Test checkThree(int two)
{
return this;
}
}
最佳答案
您想要的不可能按照您建模的方式实现,因为该方法只能有一种返回类型,无论条件如何(除非您要转换结果)。
此外,对于构建者而言,您所做的事情并没有真正意义。构建器的工作是在构建对象之前收集构建对象所需的数据。在调用构建之前,它不应该对数据执行任何操作。如果您的条件在调用 Check1 和构建最终对象之间发生了变化怎么办?
根据条件的确定方式,您想要的可能会实现。如果您在构建器上设置某些内容来设置此条件,那么您可能可以执行类似以下伪代码的操作:
public class Builder
{
bool condition=false;
bool condition2=false;
int check1 = 0;
int check2 = 0;
public ConditionalBuilder WithCondition()
{
condition = true;
return new ConditionalBuilder(this);
}
public Builder Check1(int value)
{
check1 =value;
return this;
}
}
public class ConditionalBuilder : Builder
{
public ConditionalBuilder Check2(int value)
{
check2 = value;
return this;
}
public ConditionalBuilder2 WithCondition()
{
condition2 = true;
return new ConditionalBuilder2(this);
}
}
public class ConditionalBuilder2 : Builder
{
public ConditionalBuilder2 Check3(int value)
{
check3 = value;
return this;
}
}
关于Java 中断构建器模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29674644/