enum枚舉實現策略模式


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     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM