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     }
复制代码

 

posted @   rudynan  阅读(1332)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示