commit c2bf6a5516e73f40c8b6d26fea1301c71f597dee Author: dyk123 <2090911948@qq.com> Date: Tue Oct 28 21:38:48 2025 +0800 第一次提交 diff --git a/src/main/java/ConcreteProductA.java b/src/main/java/ConcreteProductA.java new file mode 100644 index 0000000..3c3c0c4 --- /dev/null +++ b/src/main/java/ConcreteProductA.java @@ -0,0 +1,6 @@ +public class ConcreteProductA implements Product { + @Override + public void operation() { + System.out.println("ConcreteProductA operation"); + } +} \ No newline at end of file diff --git a/src/main/java/ConcreteProductB.java b/src/main/java/ConcreteProductB.java new file mode 100644 index 0000000..0f17fd9 --- /dev/null +++ b/src/main/java/ConcreteProductB.java @@ -0,0 +1,6 @@ +public class ConcreteProductB implements Product { + @Override + public void operation() { + System.out.println("ConcreteProductB operation"); + } +} \ No newline at end of file diff --git a/src/main/java/Factory.java b/src/main/java/Factory.java new file mode 100644 index 0000000..159f8c0 --- /dev/null +++ b/src/main/java/Factory.java @@ -0,0 +1,13 @@ +public class Factory { + public static Product createProduct(String type) { + if (type == null) { + return null; + } + if (type.equalsIgnoreCase("A")) { + return new ConcreteProductA(); + } else if (type.equalsIgnoreCase("B")) { + return new ConcreteProductB(); + } + return null; + } +} \ No newline at end of file diff --git a/src/main/java/FactoryTest.java b/src/main/java/FactoryTest.java new file mode 100644 index 0000000..5960b43 --- /dev/null +++ b/src/main/java/FactoryTest.java @@ -0,0 +1,17 @@ +public class FactoryTest { + public static void main(String[] args) { + // 测试创建ConcreteProductA + Product productA = Factory.createProduct("A"); + System.out.println("创建产品A:"); + productA.operation(); + + // 测试创建ConcreteProductB + Product productB = Factory.createProduct("B"); + System.out.println("\n创建产品B:"); + productB.operation(); + + // 测试无效类型 + Product invalidProduct = Factory.createProduct("C"); + System.out.println("\n创建无效产品:" + (invalidProduct == null ? "返回null" : "失败")); + } +} \ No newline at end of file diff --git a/src/main/java/Product.java b/src/main/java/Product.java new file mode 100644 index 0000000..a413802 --- /dev/null +++ b/src/main/java/Product.java @@ -0,0 +1,3 @@ +public interface Product { + void operation(); +} \ No newline at end of file