Vij*_*bey 3 java design-patterns programming-languages anti-patterns
我有一个开发人员最近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
}
Run Code Online (Sandbox Code Playgroud)
现在,我已经看到了各种各样的地方,图书馆的这种检查.所以,我想讨论一下这种运动的价值.
请让我知道你的看法.
我想指出的一件事是链接的文章不是反对的.它是基于反类型的逻辑.假设每只动物是一种类型/类别.
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
Run Code Online (Sandbox Code Playgroud)
这是令人震惊的IMO.不是因为它有一串ifs,而是因为条件是特定于类型的.
相反,每只动物都可以实现自己的eat()方法.现在上面的代码变成了
animal.eat();
Run Code Online (Sandbox Code Playgroud)
就是这样.由于没有if语句,因此不存在逻辑错误.此外,添加Animal的新实现不需要更改此代码.在第一个示例中,添加Elephant需要更改代码.