Factory Design Pattern

August 22, 2017 | Author: Derek Banas | Category: N/A
Share Embed Donate


Short Description

You use the Factory design pattern when you want to define the class of an object at runtime. It also allows you to enca...

Description

Make a UFO

EnemyShipTesting.java public static void main(String[] args){ // Create the factory object EnemyShipFactory shipFactory = new EnemyShipFactory();

UFO Rocket Boss UFO EnemyShipFactory.java public EnemyShip makeEnemyShip(String newShipType) {

public String getName() { return name; } public void setName(String newName) { name = newName; }

} else if (newShipType.equals("R")){

System.out.print("What type of ship? (U / R / B)");

return new RocketEnemyShip();

if (userInput.hasNextLine()){

} else

String typeOfShip = userInput.nextLine();

if (newShipType.equals("B")){

theEnemy = shipFactory.makeEnemyShip(typeOfShip);

public class BigUFOEnemyShip extends EnemyShip { public BigUFOEnemyShip(){

private String name; private double speed; private double damage;

return new UFOEnemyShip();

Scanner userInput = new Scanner(System.in);

BigUFOEnemyShip

public abstract class EnemyShip {

if (newShipType.equals("U")){

EnemyShip theEnemy = null;

}

UFOEnemyShip public class UFOEnemyShip extends EnemyShip { public UFOEnemyShip(){

setName("Big UFO Enemy Ship"); setDamage(40.0); setSpeed(10.0);

}

}

setName("UFO Enemy Ship"); setDamage(20.0); setDamage(20.0);

}

}

public double getDamage() { return amtDamage; } public void setDamage(double newDamage) { amtDamage = newDamage; }

return new BigUFOEnemyShip();

if(theEnemy != null){

} else System.out.print("Please enter U, R, or B next time");

EnemyShip.java

EnemyShip newShip = null;

// Enemy ship object

doStuffEnemy(theEnemy);

name speed damage

} else return null; }

}

The Factory Pattern allows you to create objects without specifying the exact class of object that will be created.



EnemyShipFactory

Implements UFOEnemyShip

BigUFOEnemyShip

EnemyShip

Factory Design Pattern

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF