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     }
  • 相关阅读:
    C++ Primer Plus章节编程练习(第十章)
    Bezier曲线
    C++静态持续变量
    计算机图形学之三维图形变换
    计算机图形学之二维图形变换
    C++ Primer Plus章节编程练习(第七章)
    C++中的指针与const
    Java 输入输出流
    Java Fx 画圆环
    注册事件及事件处理
  • 原文地址:https://www.cnblogs.com/isnotnull/p/14177648.html
Copyright © 2011-2022 走看看