From e514c7064841bb1ba3a3cacb8cbaa35d575bc755 Mon Sep 17 00:00:00 2001 From: amin Date: Tue, 2 Jul 2024 12:11:43 +0100 Subject: [PATCH] docs: adding subject and main --- .../factory-blueprint/ExerciseRunner.java | 13 ++++ .../checkpoints/factory-blueprint/README.md | 60 +++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 subjects/java/checkpoints/factory-blueprint/ExerciseRunner.java create mode 100644 subjects/java/checkpoints/factory-blueprint/README.md diff --git a/subjects/java/checkpoints/factory-blueprint/ExerciseRunner.java b/subjects/java/checkpoints/factory-blueprint/ExerciseRunner.java new file mode 100644 index 000000000..fab7e7957 --- /dev/null +++ b/subjects/java/checkpoints/factory-blueprint/ExerciseRunner.java @@ -0,0 +1,13 @@ +public class ExerciseRunner { + public static void main(String[] args) { + Factory factory = new Factory(); + + // Handle invalid product type + Object invalidProduct = factory.createProduct("C"); + if (invalidProduct != null) { + invalidProduct.showDetails(); + } else { + System.out.println("Invalid product type"); + } + } +} \ No newline at end of file diff --git a/subjects/java/checkpoints/factory-blueprint/README.md b/subjects/java/checkpoints/factory-blueprint/README.md new file mode 100644 index 000000000..ca8c0cd62 --- /dev/null +++ b/subjects/java/checkpoints/factory-blueprint/README.md @@ -0,0 +1,60 @@ +## Factory Blueprint + +### Instructions + +You are given an incomplete Factory design pattern implementation with some incorrect parts. Complete and fix the class to demonstrate your understanding of how the Factory design pattern works. + +### Expected Classes + +```java +// Product interface +public interface Product { + void showDetails(); +} + +// ConcreteProductA class +public class ConcreteProductA { + ... +} + +// ConcreteProductB class +public class ConcreteProductB { + ... +} + +// Factory class +public class Factory { + public ConcreteProductB createProduct(String type) { // the type parametre accept two values `A` and `B` + + } +} +``` + +### Usage + +Here is a possible `ExerciseRunner.java` to test your classes: + +```java +public class ExerciseRunner { + public static void main(String[] args) { + Factory factory = new Factory(); + + // Handle invalid product type + Object invalidProduct = factory.createProduct("C"); + if (invalidProduct != null) { + invalidProduct.showDetails(); + } else { + System.out.println("Invalid product type"); + } + } +} +``` + +### Expected Output + +```shell +$ javac *.java -d build +$ java -cp build ExerciseRunner +Invalid product type +$ +```