diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/example/Car.java b/factory-method/src/main/java/com/iluwatar/factory/method/example/Car.java new file mode 100644 index 000000000000..89b1c1f48e08 --- /dev/null +++ b/factory-method/src/main/java/com/iluwatar/factory/method/example/Car.java @@ -0,0 +1,5 @@ +package com.iluwatar.factory.method.example; + +public interface Car { + void drive(); +} diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/example/CarFactory.java b/factory-method/src/main/java/com/iluwatar/factory/method/example/CarFactory.java new file mode 100644 index 000000000000..41bd7c178181 --- /dev/null +++ b/factory-method/src/main/java/com/iluwatar/factory/method/example/CarFactory.java @@ -0,0 +1,14 @@ +package com.iluwatar.factory.method.example; + +public class CarFactory { + + public static Car createCar(String type) { + if (type.equalsIgnoreCase("sports")) { + return new SportsCar(); + } else if (type.equalsIgnoreCase("suv")) { + return new SuvCar(); + } else { + throw new IllegalArgumentException("Unknown car type: " + type); + } + } +} diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/example/Main.java b/factory-method/src/main/java/com/iluwatar/factory/method/example/Main.java new file mode 100644 index 000000000000..3a36e2638b57 --- /dev/null +++ b/factory-method/src/main/java/com/iluwatar/factory/method/example/Main.java @@ -0,0 +1,11 @@ +package com.iluwatar.factory.method.example; + +public class Main { + public static void main(String[] args) { + Car sports = CarFactory.createCar("sports"); + sports.drive(); + + Car suv = CarFactory.createCar("suv"); + suv.drive(); + } +} diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/example/SportsCar.java b/factory-method/src/main/java/com/iluwatar/factory/method/example/SportsCar.java new file mode 100644 index 000000000000..52591c88800f --- /dev/null +++ b/factory-method/src/main/java/com/iluwatar/factory/method/example/SportsCar.java @@ -0,0 +1,8 @@ +package com.iluwatar.factory.method.example; + +public class SportsCar implements Car { + @Override + public void drive() { + System.out.println("Driving a sports car fast!"); + } +} diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/example/SuvCar.java b/factory-method/src/main/java/com/iluwatar/factory/method/example/SuvCar.java new file mode 100644 index 000000000000..612e0a432359 --- /dev/null +++ b/factory-method/src/main/java/com/iluwatar/factory/method/example/SuvCar.java @@ -0,0 +1,8 @@ +package com.iluwatar.factory.method.example; + +public class SuvCar implements Car { + @Override + public void drive() { + System.out.println("Driving a comfortable SUV!"); + } +}