/** * Author: Josiah Yoder et al. * Class: SE2811-011 * Date: 12/9/13 8:27 AM * Lesson: Week 2, Day 2 */ package example2_2; import java.util.ArrayList; import java.util.Scanner; public class DuckDriver { public static final int NO_DUCK = Integer.MAX_VALUE; public static final int FINISHED = 0; public static void main(String[] ignored) { // abstrack duck cannot be instantiated... yet // Duck duck = new Duck(); System.out.println("Duck:"); duck.swim(); duck.setSwimBehavior(new CircularSwimming()); duck.swim(); System.out.println("Mallard:"); Duck mallard = new Mallard(); mallard.swim(); createDucks(); } public static void createDucks() { DuckFactory factory = new DuckFactory(); int duckType = NO_DUCK; Duck newDuck = null; ArrayList ducks = new ArrayList(); Scanner in = new Scanner(System.in); while(duckType != FINISHED) { System.out.println("Please enter a duck type: "); System.out.println(" 0. Exit"); System.out.println(" 1. Mallard"); System.out.println(" 2. DarkWing"); duckType = in.nextInt(); newDuck = factory.createDuck(duckType, in); if(newDuck != null) { ducks.add(newDuck); } } System.out.println(""); System.out.println("Ducks entered:"); for(Duck duck : ducks) { System.out.println(duck); } System.out.println(""); System.out.println("Swim, ducks, swim:"); for(Duck duck : ducks) { duck.swim(); } } }