// Project: Patterns1 // Module: employeefactory // Source code file: Test.java // Illustrate the Factory software pattern. // The getInstance method can create objects from // three different classes.import empfactory.*; import empfactory.*; public class Test { public static void main(String[] args) { // Declare, get instance of, and populate // Person object. Person p = EmployeeFactory.getInstance("person" ); p.setName("Alice"); p.setGender('F'); p.setAge(11); System.out.println(p); // The following direct constructor // calls are not allowed. // Person p2 = new Person( ); // Employee emp2 = new Employee( ); // Executive exec2 = new Executive( ); // Declare, get instance of, populate, and print. Employee object. Person emp = EmployeeFactory.getInstance("employee" ); emp.setName("Roger"); emp.setGender('M'); emp.setAge(29); ((Employee) emp).setId(3333); ((Employee) emp).setSalary(75000); System.out.println(emp); // Declare, get instance of, populate, and print // Executive object. Person exec = EmployeeFactory.getInstance("executive" ); exec.setName("Gladys"); exec.setGender('F'); exec.setAge(45); ((Employee) exec).setId(4444); ((Employee) exec).setSalary(250000); ((Executive) exec).setBonus(100000); System.out.println(exec); } }