有这样一个判断场景。
if ("dog".equals(animalType)){ System.out.println("吃骨头"); } else if ("cat".equals(animalType)) { System.out.println("吃鱼干"); } else if ("sheep") { System.out.println("吃草"); }
先定义一个接口,里面有一个通用方法 eat()
public interface Eat { //吃 String eat(); }
然后创建枚举类实现这个接口
public enum AnimalEnum implements Eat { Dog(){ @Override public void eat() { System.out.println("吃骨头"); } }, Cat() { @Override public void eat() { System.out.println("吃鱼干"); } }, Sheep() { @Override public void eat() { System.out.println("吃草"); } } }
调用的时候只需要一行代码:
public class Test { public static void main(String[] args) { AnimalEnum.valueOf("Cat").eat(); } }
以后假如想再扩充新的动物,只需要去枚举类中加代码即可,而不用改任何老代码,符合开闭原则!