You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.3 KiB
2.3 KiB
简单工厂模式实现
项目介绍
本项目实现了设计模式中的简单工厂模式(Simple Factory Pattern),这是一种创建型设计模式,用于封装对象的创建逻辑。
设计模式说明
简单工厂模式的核心角色:
- 抽象产品(Product) - 定义产品的接口或抽象类
- 具体产品(ConcreteProduct) - 实现抽象产品接口的具体类
- 工厂类(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文档注释
- ✅ 全面的测试用例覆盖
使用示例
// 创建产品A
Product productA = Factory.createProduct("A");
productA.operation(); // 输出: ConcreteProductA 执行操作
// 创建产品B
Product productB = Factory.createProduct("B");
productB.operation(); // 输出: ConcreteProductB 执行操作
运行测试
在项目目录下执行以下命令运行测试:
cd src/main/java
javac *.java
java TestFactory
简单工厂模式的优缺点
优点:
- 封装了对象的创建过程,客户端不需要知道如何创建对象
- 降低了客户端与具体产品的耦合度
- 便于统一管理对象的创建逻辑
缺点:
- 工厂类集中了所有产品的创建逻辑,违反了开闭原则
- 添加新产品时需要修改工厂类的代码
适用场景
- 工厂类负责创建的对象比较少
- 客户端只知道传入工厂类的参数,不关心如何创建对象的逻辑