zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    Linux入门-第四周
    Linux入门-第三周
    使用yum命令报错File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
    Linux-帮助的用法
    Linux-history的用法
    【memcached启动报错】
    【rabbitmq消息队列配置】
    【saltstack 集中化管理】
    【mongodb用户和身份认证管理】
    【mongdb主从复制和同步】
  • 原文地址:https://www.cnblogs.com/isnotnull/p/14177648.html
Copyright © 2011-2022 走看看