avoiding if statements

前端 未结 24 1048
心在旅途
心在旅途 2021-01-30 08:39

I was thinking about object oriented design today, and I was wondering if you should avoid if statements. My thought is that in any case where you require an if statement you ca

24条回答
  •  青春惊慌失措
    2021-01-30 09:24

    Assume we have conditional values.
    
    public void testMe(int i){
    
    if(i=1){
    somevalue=value1;
    }
    
    
    if(i=2){
     somevalue=value2;
    }
    
    if(i=3){
    somevalue=value3;
    }
    

    }

    //**$$$$$you can replace the boring IF blocks with Map.$$$$$**
    

    // ============================================================

    Same method would look like this:
    --------------------------------
    public void testMe(int i){
    
    Map map = new HashMap();
    
    map.put(1,value1);
    map.put(2,value2);
    map.put(3,value3);
    
    }
    This will avoid the complicated if conditions.
    

    You can use simliar solution when using factory patterns for loading classes.

    public void loadAnimalsKingdom(String animalKingdomType)
        if(animalKingdomType="bird"){
        Bird b = new Bird();
        }
        if(animalKingdomType="animal"){
        Animal a= new Animal();
        }
        if(animalKingdomType="reptile"){
        Reptile r= new Reptile();
        }
      }
    

    Now using map :

       public void loadAnimalsKingdom(String animalKingdomType)
        {
           Map  map = new HashMap();
    
           map.put("bird","com.animalworld.Bird.Class");
           map.put("animal","com.animalworld.Animal.Class");
           map.put("reptile","com.animalworld.Reptile.Class");
    
           map.get(animalKingdomType);
    
    ***Use class loader to load the classes on demand once you extract the required class from the map.***
    }
    

    Like the solution? Give thumbs-up. - Vv

提交回复
热议问题