From a8569e29bd4249b4ca5bffde9adb518076e1fe7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=80=AA=E6=80=9D=E7=BE=BD?= <1577964316@qq.com> Date: Sun, 26 Oct 2025 21:35:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ConcreteProductA.java | 6 ++++++ src/main/java/ConcreteProductB.java | 6 ++++++ src/main/java/Factory.java | 24 ++++++++++++++++++++++++ src/main/java/Product.java | 3 +++ 4 files changed, 39 insertions(+) create mode 100644 src/main/java/ConcreteProductA.java create mode 100644 src/main/java/ConcreteProductB.java create mode 100644 src/main/java/Factory.java create mode 100644 src/main/java/Product.java 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..3803edc --- /dev/null +++ b/src/main/java/Factory.java @@ -0,0 +1,24 @@ +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; + } + + // 添加测试方法 + public static void main(String[] args) { + // 创建产品A + Product productA = Factory.createProduct("A"); + productA.operation(); + + // 创建产品B + Product productB = Factory.createProduct("B"); + productB.operation(); + } +} \ 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..466a88e --- /dev/null +++ b/src/main/java/Product.java @@ -0,0 +1,3 @@ +public interface Product { + void operation(); +} \ No newline at end of file