ポリシーモードは三元式とともにif elseを消滅する

2040 ワード

import java.util.HashMap;

public class XuQiu {
    /**
     *                    ,      +1
     *             ,        
     *   :    ,       +1,         ,  1
     *           :        【  】         【  】       
     *    XuQiu    【  】    ,  Action         【  】  
     *   :    ,        :        ,     action          ,           
     *   2:    action       ,           ,  new  。
     *   : new   。
     * */
    public static HashMap poll;
    public static void main(String[] args) {
        poll=new HashMap();
        String key="usdt";
        for(int i=0;i<=5;i++){
            Action1.getInstance().add(poll,key);
            System.out.println(poll);
        }
    }
}

 
=================================
import java.util.HashMap;
/**
 *               :            ,        ,        ,     
 *      if else     。
 */
public class Action1 implements Action {
    public static final Integer addNum = 1;
    private Action1(){}
    static Action1 action1;
    public static Action1 getInstance(){
        if(action1==null){
            action1=new Action1();
        }
        return action1;
    }

    public void add(HashMap poll, String key) {
        Integer num = poll.get(key);
        Integer integer = poll.get(key) != null ?
                poll.put(key, num + addNum)
                : Action2.getInstance().add(poll, key);
    }
}

 
 
import java.util.HashMap;
import java.util.Optional;
/**
 *          ,            ,         
 * */
public class Action2 {
    public static final Integer originNum=1;
    private Action2(){
    }
    private static Action2 action2;
    public static Action2 getInstance(){
        if(null==action2){
            action2=  new Action2();
        }
        return action2;
    }

    public Integer add(HashMap poll, String key) {
        return Optional.ofNullable(poll.put(key, originNum)).orElse(2);
    }
}