怎么看“反如果”运动及其目标?

我有一个开发人员最近3年,一直在使用if-else或if-else if语句在我的编程习惯中很多。 今天,我找到了这个链接。 我放在这里的一个明显的例子
public void doSomthing(String target, String object){
    //validate requests
    if(target != null && target.trim().length() < 1){
        //invalid request;
    }

    //further logic

}
现在,我已经看到了各种各样的地方,图书馆的这种检查。所以,我想讨论一下这种运动的价值。 请让我知道你的看法。     
已邀请:
该文章主张反对使用
if
来模拟多态性。换句话说,如果您发现自己正在切换或测试您的对象是否属于某种类型,那么您做错了 - 您应该让类型系统为您执行此操作。     
我想指出的一件事是链接的文章不是反对的。它是基于反类型的逻辑。假设每只动物是一种类型/类别。
IF i am a giraffe then eat a leaf
else IF i am a rhino eat some grass
else IF I am a monkey eat a banana
etc
这是令人震惊的IMO。不是因为它有一串ifs,而是因为条件是特定于类型的。 相反,每只动物都可以实现自己的eat()方法。现在上面的代码变成了
animal.eat();
就是这样。由于没有if语句,因此不存在逻辑错误。此外,添加Animal的新实现不需要更改此代码。在第一个示例中,添加Elephant需要更改代码。     
我不认为反对运动应该旨在消除所有
if
s。从文章中的代码来看,它似乎是针对可以通过利用多态实现其他方式的构造。在您的示例中,可以使用if子句。     
这篇文章不是在谈论从不使用
ifs
。它们是程序控制所必需的。有人说,有些情况下,避免if语句链是有意义的,这就是我认为“反if”运动的意义所在。     
我必须阅读它。不幸的是,似乎网站上存在一些未经证实的声明,例如“肯特贝克加入反IF频道”。 IF语句增加了代码的复杂性,这是事实。所以尝试/ catch块,循环和任何条件表达式。全面陈述他们是坏/邪恶等等。不是好形式。请参阅:编程中的任何内容真的是邪恶的 我无法看到他的解决方案真正消除了对条件逻辑的需求。底线是使代码更容易维护的任何东西,做到这一点。     
你给出的例子似乎有点合理。但是,您不应该默默地让它失败或返回null或其他东西,但是当它无效时抛出异常。更好的是使用断言。 使用ifs测试对象类型是一种不好的做法,而不是更多地考虑你的类和关系。在像Java这样的静态类型语言中,如果(b的一个实例)一直都不应该成为常态。     

要回复问题请先登录注册