美文网首页
java里减少if else的例子

java里减少if else的例子

作者: 薄兆军 | 来源:发表于2016-07-13 11:48 被阅读0次
package com.csdn;

interface Animal {
    void speak();
}

class Dog implements Animal {
    @Override
    public void speak() {
        System.out.println("dog speak.");
    }
}

class Cat implements Animal {
    @Override
    public void speak() {
        System.out.println("cat speak.");
    }
}

class Pig implements Animal {
    @Override
    public void speak() {
        System.out.println("pig speak.");
    }
}

public class NoIfElse {
    // 比方说现在有个需求,
    // 通过state状态来判断那种动物叫
    // 0让狗叫,1让猫叫,2让猪叫

    /**
     * 方法1
     */
    private void animalSpeak(int state) {
        Animal[] animals = { new Dog(), new Cat(), new Pig() };
        animals[state].speak();
    }

    /**
     * 方法2,没有用到Animal接口
     */
    private void animalSpeak2(int state) {
        if (state == 0) {
            new Dog().speak();
        }
        if (state == 1) {
            new Cat().speak();
        }
        if (state == 2) {
            new Pig().speak();
        }
    }

    public static void main(String[] args) {
        NoIfElse t = new NoIfElse();
        int state = 1;

        t.animalSpeak(state);

        t.animalSpeak2(state);
    }
}



相关文章

网友评论

      本文标题:java里减少if else的例子

      本文链接:https://www.haomeiwen.com/subject/qjisjttx.html