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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)