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     }
  • 相关阅读:
    路由相关题目解析
    Centos7.6系统安装
    组播(二)---IGMP
    那些瞬间击中我的句子
    组播(一)
    记一次安装浪潮服务器的经历
    HP打印机驱动安装方法总结
    潍坊矿场ubuntu18 server 基本环境配置常用操作
    docker-zabbix
    MySQL 8.x 账号管理
  • 原文地址:https://www.cnblogs.com/isnotnull/p/14177648.html
Copyright © 2011-2022 走看看