Question: Automobile Packages: TestFactory.java package AutoFactory; public class TestFactory { public static void main(String[] args) { AutoStore asiaStore = new AsiaStore(); AutoStore northAmericaStore = new NorthAmericaStore();

Automobile Packages:
TestFactory.java
package AutoFactory;
public class TestFactory {
public static void main(String[] args) { AutoStore asiaStore = new AsiaStore(); AutoStore northAmericaStore = new NorthAmericaStore(); AutoStore europeStore = new EuropeStore(); //create asiaStore auto Automobile auto = asiaStore.createAuto("Toyota"); auto.printMarkModel(); auto = asiaStore.createAuto("Subaru"); auto.printMarkModel(); //create europeStore auto auto = europeStore.createAuto("Toyota"); auto.printMarkModel(); auto = europeStore.createAuto("Subaru"); auto.printMarkModel(); //create northAmericaStore auto auto = northAmericaStore.createAuto("Toyota"); auto.printMarkModel(); auto = northAmericaStore.createAuto("Subaru"); auto.printMarkModel();
}
}
AsiaStore.java
package AutoFactory;
public class AsiaStore extends AutoStore { //method return object type Automobile Automobile createAuto(String mark) { Automobile auto = null; if (mark.equals("Toyota")) { auto = new AsiaToyota();//create AsiaToyota auto } else if (mark.equals("Subaru")) { auto = new AsiaSubaru();//create AsiaSubaru auto } return auto;//return auto }
}
AutoStore.java
package AutoFactory;
public abstract class AutoStore { abstract Automobile createAuto(String mark);//create and return object Automobile }
Automobile.java
package AutoFactory;
import java.util.ArrayList;
abstract class Automobile { String mark;//mark auto String model;//model auto String price;//price auto ArrayList
EuropeStore.java
package AutoFactory;
public class EuropeStore extends AutoStore { //method return object type Automobile Automobile createAuto(String mark) { Automobile auto = null; if (mark.equals("Toyota")) { auto = new EuropeToyota();//create EuropeToyota auto } else if (mark.equals("Subaru")) { auto = new EuropeSubaru();//create EuropeSubaru auto } return auto;//return auto }
}
EuropeToyota.java
package AutoFactory;
public class EuropeToyota extends Automobile { //set all information about auto public EuropeToyota() { mark = "Toyota"; model = "Camry"; price = "$7000"; luxuryBundle.add("Upgrades radio"); luxuryBundle.add("Aluminium wheels"); luxuryBundle.add("Sunroof"); performanceBundle.add("Aluminium wheels"); } //print all information void printMarkModel() { System.out.println("Mark: " + mark + " ,Model: " + model + " , Price: " + price); }
}
EuropeSubaru.java
package AutoFactory;
public class EuropeSubaru extends Automobile{ //set all information about auto public EuropeSubaru() { mark = "Subaru"; model = "Impreza"; price = "$6000"; luxuryBundle.add("Upgrades radio"); luxuryBundle.add("Sunroof"); performanceBundle.add("Aluminium wheels"); } //print all information void printMarkModel() { System.out.println("Mark: " + mark + " ,Model: " + model + " , Price: " + price); }
}
AsiaToyota.java
package AutoFactory;
public class AsiaToyota extends Automobile{ //set all information about auto public AsiaToyota() { mark = "Toyota"; model = "Camry"; price = "$10000"; luxuryBundle.add("Upgrades radio"); luxuryBundle.add("Aluminium wheels"); luxuryBundle.add("Sunroof"); performanceBundle.add("Aluminium wheels"); } //print all information void printMarkModel() { System.out.println("Mark: " + mark + " ,Model: " + model + " , Price: " + price); } }
AsiaSubaru.java
package AutoFactory;
public class AsiaSubaru extends Automobile { //set all information about auto public AsiaSubaru() { mark = "Subaru"; model = "Impreza"; price = "$13000"; luxuryBundle.add("Upgrades radio"); luxuryBundle.add("Sunroof"); performanceBundle.add("Aluminium wheels"); } //print all information void printMarkModel() { System.out.println("Mark: " + mark + " ,Model: " + model + " , Price: " + price); }
}
NorthAmericaStore.java
package AutoFactory;
public class NorthAmericaStore extends AutoStore { //method return object type Automobile Automobile createAuto(String mark) { Automobile auto = null; if (mark.equals("Toyota")) { auto = new NorthAmericaToyota();//create NorthAmericaToyota auto } else if (mark.equals("Subaru")) { auto = new NorthAmericaSubaru();//create NorthAmericaSubaru auto } return auto;//return auto }
}
NorthAmericaToyota.java
package AutoFactory;
public class NorthAmericaToyota extends Automobile{ //set all information about auto public NorthAmericaToyota() { mark = "Toyota"; model = "Camry"; price = "$8000"; luxuryBundle.add("Upgrades radio"); luxuryBundle.add("Sunroof"); performanceBundle.add("Aluminium wheels"); } //print all information void printMarkModel() { System.out.println("Mark: " + mark + " ,Model: " + model + " , Price: " + price); } }
NorthAmericaSubaru.java
package AutoFactory;
public class NorthAmericaSubaru extends Automobile{ //set all information about auto public NorthAmericaSubaru() { mark = "Subaru"; model = "Impreza"; price = "$12000"; luxuryBundle.add("Upgrades radio"); luxuryBundle.add("Aluminium wheels"); performanceBundle.add("Sunroof"); } //print all information void printMarkModel() { System.out.println("Mark: " + mark + " ,Model: " + model + " , Price: " + price); } }
Output:
UML Diagram (3 Points) Use a UML diagram to show the class relationships. When you upload it, either scan or photograph your UML diagram. Problems @ Javadoc @ Declaration Console X Coverage terminated TestFactory [Java Application] C:\Program Files\Java\jdk1.8.0_131\bin\javaw.exe (Jan 2, 2018, 8:19:21 PM) Mark: Toyota , Model: Camry , Price: $10000 Mark: Subaru , Model: Impreza , Price: $13000 Mark: Toyota , Model: Camry, Price: $7000 Mark: Subaru , Model: Impreza Price: $6000 Mark: Toyota , Model: Camry, Price: $8000 Mark: Subaru , Model: Impreza , Price: $12000Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
