我根据命令行输入的用户填充对象。 对象需要有一定数量的数据才能继续。到目前为止,我的解决方案是嵌套if语句来检查对象是否准备就绪。如下例所示。 也许3个if语句不是很糟糕(?)但是如果if语句的数量开始增加怎么办?这里有什么替代方案?让我们说X,Y和Z是三个完全不同的东西。例如,让我们说object.X是一个整数和object的列表.Y是一个字符串,也许Z是某种布尔值,只有当object.Y有一定数量的值时才返回true? 我不确定多态会在这种情况下有效吗?
do
{
if (object.HasX)
{
if (object.HasY)
{
if (object.HasZ)
{
//Object is ready to proceed.
}
else
{
//Object is missing Z. Handle it...
}
}
else
{
//Object is missing Y. Handle it...
}
}
else
{
//Object is missing X. Handle it...
}
} while (!String.IsNullOrEmpty(line));
答案 0 :(得分:1)
对于复杂的逻辑工作流程,我发现,可维护性决定逻辑应该采用哪种抽象级别。
是否必须定期添加新的逻辑/解析规则?
不幸的是,没有办法避免必须做明确的条件,他们必须住在某个地方。
有些可以帮助保持清洁的事情可能是:
if not object.hasX; return
,下一步你知道has.X
,这仍然会有一个条件列表,但会更平坦