From bcc226bae022988ea95d11fbf3ed2a30737996d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=8D=83=E7=A8=8B?= <3079754565@qq.com> Date: Sun, 26 Oct 2025 18:25:32 +0800 Subject: [PATCH] Update README.md: --- README.md | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9459fbe..68bbb02 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,79 @@ -# factory +# 简单工厂模式实现 +## 项目介绍 + +本项目实现了设计模式中的**简单工厂模式**(Simple Factory Pattern),这是一种创建型设计模式,用于封装对象的创建逻辑。 + +## 设计模式说明 + +### 简单工厂模式的核心角色: + +1. **抽象产品(Product)** - 定义产品的接口或抽象类 +2. **具体产品(ConcreteProduct)** - 实现抽象产品接口的具体类 +3. **工厂类(Factory)** - 负责创建具体产品实例的类 + +### 本项目中的实现: + +- **Product** - 产品接口,定义了operation()方法 +- **ConcreteProductA、ConcreteProductB** - 具体产品实现 +- **Factory** - 工厂类,通过静态方法createProduct()创建产品 + +## 项目结构 + +``` +├── src/ +│ └── main/ +│ └── java/ +│ ├── Product.java # 产品接口 +│ ├── ConcreteProductA.java # 具体产品A +│ ├── ConcreteProductB.java # 具体产品B +│ ├── Factory.java # 工厂类 +│ └── TestFactory.java # 测试类 +└── README.md # 项目说明文档 +``` + +## 代码特点 + +- ✅ 遵循SOLID设计原则,特别是单一职责原则 +- ✅ 接口与实现分离,符合依赖倒置原则 +- ✅ 完善的参数验证和异常处理机制 +- ✅ 详细的JavaDoc文档注释 +- ✅ 全面的测试用例覆盖 + +## 使用示例 + +```java +// 创建产品A +Product productA = Factory.createProduct("A"); +productA.operation(); // 输出: ConcreteProductA 执行操作 + +// 创建产品B +Product productB = Factory.createProduct("B"); +productB.operation(); // 输出: ConcreteProductB 执行操作 +``` + +## 运行测试 + +在项目目录下执行以下命令运行测试: + +```bash +cd src/main/java +javac *.java +java TestFactory +``` + +## 简单工厂模式的优缺点 + +### 优点: +- 封装了对象的创建过程,客户端不需要知道如何创建对象 +- 降低了客户端与具体产品的耦合度 +- 便于统一管理对象的创建逻辑 + +### 缺点: +- 工厂类集中了所有产品的创建逻辑,违反了开闭原则 +- 添加新产品时需要修改工厂类的代码 + +## 适用场景 + +- 工厂类负责创建的对象比较少 +- 客户端只知道传入工厂类的参数,不关心如何创建对象的逻辑 \ No newline at end of file