1 // 策略模式是为了简化if else判断 2 String type = "dog"; 3 if(type.eques("dog")){ 4 System.out.print("汪汪汪"); 5 }else if(type.eques("cat")){ 6 System.out.print("M喵喵喵"); 7 }
if else显得代码很不简介
下面使用策略模式处理:
1 public interface Animal { 2 3 void bark(); 4 } 5 ---- 6 public class Cat implements Animal { 7 @Override 8 public void bark() { 9 System.out.println("喵喵喵"); 10 } 11 } 12 --- 13 public class Dog implements Animal, ApplicationContextAware { 14 private ApplicationContext applicationContext; 15 @Override 16 public void bark() { 17 System.out.println("汪汪汪"); 18 Object nanhxgoodMapper = applicationContext.getBean("nanhxgoodMapper"); 19 } 20 21 @Override 22 public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { 23 this.applicationContext = applicationContext; 24 } 25 26 } 27 --- 28 public enum StrageEnum { 29 DOG(new Dog()), 30 CAT(new Cat()); 31 32 private Animal animal; 33 34 StrageEnum(Animal animal) { 35 36 this.animal = animal; 37 } 38 39 public Animal getAnimal() { 40 return animal; 41 } 42 43 44 } 45 46 ---- 47 public static void main(String[] args) { 48 StrageEnum.valueOf("CAT").getAnimal().bark(); 49 }