Skip to main content
Question Protected by gnat
added 265 characters in body
Source Link
user1787812
  • 769
  • 7
  • 16

With two existing implementations, UFOEnemyShip & RocketEnemyShip,

To introduce every new implementation implementing EnemyShip interface, shown below,

[![enter image description here][1]][1] [1]: https://i.sstatic.net/VBDw5.jpg


changes are needed in factory class EnemyShipFactory, with an extra else if, shown below,

public class EnemyShipFactory {
    public EnemyShip makeEnemyShip(String shipType) {
        EnemyShip theEnemy = null;
        
        if(shipType.equals("U")) {
            theEnemy = new UFOEnemyShip();
        }else if (shipType.equals("R")) {
            theEnemy = new RocketEnemyShip();
        }else if (shipType.equals("B")) {
            theEnemy = new BigUFOEnemyShip();
        }
        
        return theEnemy;
    }
}

CLIENT CODE:

public static void main(String[] args) {
        EnemyShipFactory shipFactory = new EnemyShipFactory();
        EnemyShip theEnemy = shipFactory.makeEnemyShip("R");
        doSomething(theEnemy);
    }

Is this code change in EnemyShipFactory considered a code smell? If yes, can we avoid this code smell?

With two existing implementations, UFOEnemyShip & RocketEnemyShip,

To introduce every new implementation implementing EnemyShip interface, shown below,

[![enter image description here][1]][1] [1]: https://i.sstatic.net/VBDw5.jpg


changes are needed in factory class EnemyShipFactory, with an extra else if, shown below,

public class EnemyShipFactory {
    public EnemyShip makeEnemyShip(String shipType) {
        EnemyShip theEnemy = null;
        
        if(shipType.equals("U")) {
            theEnemy = new UFOEnemyShip();
        }else if (shipType.equals("R")) {
            theEnemy = new RocketEnemyShip();
        }else if (shipType.equals("B")) {
            theEnemy = new BigUFOEnemyShip();
        }
        
        return theEnemy;
    }
}

Is this code change in EnemyShipFactory considered a code smell? If yes, can we avoid this code smell?

With two existing implementations, UFOEnemyShip & RocketEnemyShip,

To introduce every new implementation implementing EnemyShip interface, shown below,

[![enter image description here][1]][1] [1]: https://i.sstatic.net/VBDw5.jpg


changes are needed in factory class EnemyShipFactory, with an extra else if, shown below,

public class EnemyShipFactory {
    public EnemyShip makeEnemyShip(String shipType) {
        EnemyShip theEnemy = null;
        
        if(shipType.equals("U")) {
            theEnemy = new UFOEnemyShip();
        }else if (shipType.equals("R")) {
            theEnemy = new RocketEnemyShip();
        }else if (shipType.equals("B")) {
            theEnemy = new BigUFOEnemyShip();
        }
        
        return theEnemy;
    }
}

CLIENT CODE:

public static void main(String[] args) {
        EnemyShipFactory shipFactory = new EnemyShipFactory();
        EnemyShip theEnemy = shipFactory.makeEnemyShip("R");
        doSomething(theEnemy);
    }

Is this code change in EnemyShipFactory considered a code smell? If yes, can we avoid this code smell?

deleted 9 characters in body
Source Link
user1787812
  • 769
  • 7
  • 16

Considering existingWith two existing implementations, UFOEnemyShip & RocketEnemyShip,

for introducingTo introduce every new implementation implementing EnemyShip interface, shown below,

[![enter image description here][1]][1] [1]: https://i.sstatic.net/VBDw5.jpg


changes are needed in factory class EnemyShipFactory, with an extra else if, shown below,

public class EnemyShipFactory {
    public EnemyShip makeEnemyShip(String shipType) {
        EnemyShip theEnemy = null;
        
        if(shipType.equals("U")) {
            theEnemy = new UFOEnemyShip();
        }else if (shipType.equals("R")) {
            theEnemy = new RocketEnemyShip();
        }else if (shipType.equals("B")) {
            theEnemy = new BigUFOEnemyShip();
        }
        
        return theEnemy;
    }
}

Is this code change in EnemyShipFactory considered a code smell? If yes, can we avoid this code smell?

Considering existing two implementations, UFOEnemyShip & RocketEnemyShip,

for introducing every new implementation implementing EnemyShip interface, shown below,

[![enter image description here][1]][1] [1]: https://i.sstatic.net/VBDw5.jpg


changes are needed in factory class EnemyShipFactory, with an extra else if, shown below,

public class EnemyShipFactory {
    public EnemyShip makeEnemyShip(String shipType) {
        EnemyShip theEnemy = null;
        
        if(shipType.equals("U")) {
            theEnemy = new UFOEnemyShip();
        }else if (shipType.equals("R")) {
            theEnemy = new RocketEnemyShip();
        }else if (shipType.equals("B")) {
            theEnemy = new BigUFOEnemyShip();
        }
        
        return theEnemy;
    }
}

Is this code change in EnemyShipFactory considered a code smell? If yes, can we avoid this code smell?

With two existing implementations, UFOEnemyShip & RocketEnemyShip,

To introduce every new implementation implementing EnemyShip interface, shown below,

[![enter image description here][1]][1] [1]: https://i.sstatic.net/VBDw5.jpg


changes are needed in factory class EnemyShipFactory, with an extra else if, shown below,

public class EnemyShipFactory {
    public EnemyShip makeEnemyShip(String shipType) {
        EnemyShip theEnemy = null;
        
        if(shipType.equals("U")) {
            theEnemy = new UFOEnemyShip();
        }else if (shipType.equals("R")) {
            theEnemy = new RocketEnemyShip();
        }else if (shipType.equals("B")) {
            theEnemy = new BigUFOEnemyShip();
        }
        
        return theEnemy;
    }
}

Is this code change in EnemyShipFactory considered a code smell? If yes, can we avoid this code smell?

edited tags
Source Link
user1787812
  • 769
  • 7
  • 16

Considering existing two implementations, UFOEnemyShip & RocketEnemyShip,

for introducing every new implementation implementing EnemyShip interface, shown below,

[![enter image description here][1]][1] [1]: https://i.sstatic.net/VBDw5.jpg


changes are needed in factory class EnemyShipFactory, with an extra else if, shown below,

public class EnemyShipFactory {
    public EnemyShip makeEnemyShip(String shipType) {
        EnemyShip theEnemy = null;
        
        if(shipType.equals("U")) {
            theEnemy = new UFOEnemyShip();
        }else if (shipType.equals("R")) {
            theEnemy = new RocketEnemyShip();
        }else if (shipType.equals("B")) {
            theEnemy = new BigUFOEnemyShip();
        }
        
        return theEnemy;
    }
}

Is this code change in EnemyShipFactory considered a code smell? If yes, can we avoid this code smell?

Considering existing two implementations, UFOEnemyShip & RocketEnemyShip,

for introducing every new implementation implementing EnemyShip interface, shown below,

[![enter image description here][1]][1] [1]: https://i.sstatic.net/VBDw5.jpg


changes are needed in factory class EnemyShipFactory, with an extra else if,

public class EnemyShipFactory {
    public EnemyShip makeEnemyShip(String shipType) {
        EnemyShip theEnemy = null;
        
        if(shipType.equals("U")) {
            theEnemy = new UFOEnemyShip();
        }else if (shipType.equals("R")) {
            theEnemy = new RocketEnemyShip();
        }else if (shipType.equals("B")) {
            theEnemy = new BigUFOEnemyShip();
        }
        
        return theEnemy;
    }
}

Is this code change in EnemyShipFactory considered a code smell? If yes, can we avoid this code smell?

Considering existing two implementations, UFOEnemyShip & RocketEnemyShip,

for introducing every new implementation implementing EnemyShip interface, shown below,

[![enter image description here][1]][1] [1]: https://i.sstatic.net/VBDw5.jpg


changes are needed in factory class EnemyShipFactory, with an extra else if, shown below,

public class EnemyShipFactory {
    public EnemyShip makeEnemyShip(String shipType) {
        EnemyShip theEnemy = null;
        
        if(shipType.equals("U")) {
            theEnemy = new UFOEnemyShip();
        }else if (shipType.equals("R")) {
            theEnemy = new RocketEnemyShip();
        }else if (shipType.equals("B")) {
            theEnemy = new BigUFOEnemyShip();
        }
        
        return theEnemy;
    }
}

Is this code change in EnemyShipFactory considered a code smell? If yes, can we avoid this code smell?

Source Link
user1787812
  • 769
  • 7
  • 16
Loading