# 简单工厂模式Java实现 这是一个符合SOLID原则的简单工厂模式Java应用。 ## 项目结构 ``` src/ ├── main/ │ └── java/ │ ├── Product.java # 抽象产品类 │ ├── ConcreteProductA.java # 具体产品类A │ ├── ConcreteProductB.java # 具体产品类B │ ├── Factory.java # 工厂类 │ └── Main.java # 主类,用于演示 └── test/ └── java/ ├── ProductTest.java # 抽象产品测试类 ├── ConcreteProductATest.java # 具体产品A测试类 ├── ConcreteProductBTest.java # 具体产品B测试类 └── FactoryTest.java # 工厂类测试类 ``` ## 功能说明 1. **抽象产品类 (Product)**:定义产品的公共接口和抽象方法 2. **具体产品类 (ConcreteProductA, ConcreteProductB)**:实现产品的具体功能 3. **工厂类 (Factory)**:负责创建不同类型的产品实例 4. **主类 (Main)**:演示工厂模式的使用方法 ## 运行方法 ### 运行主程序 ```bash cd src javac -encoding UTF-8 main/java/*.java java main.java.Main ``` ### 运行测试 使用JUnit框架运行测试: ```bash # 需要将JUnit库添加到classpath java -cp .:junit.jar:hamcrest-core.jar org.junit.runner.JUnitCore main.java.FactoryTest main.java.ProductTest main.java.ConcreteProductATest main.java.ConcreteProductBTest ``` ## SOLID原则应用 - **单一职责原则 (SRP)**:每个类都有明确的职责 - **开闭原则 (OCP)**:系统对扩展开放,对修改关闭 - **里氏替换原则 (LSP)**:子类可以替换父类使用 - **依赖倒置原则 (DIP)**:依赖于抽象而非具体实现 - **接口隔离原则 (ISP)**:产品接口简洁,只包含必要的方法 ## 注意事项 - 本项目使用Java标准库实现,无需额外依赖 - 测试类使用JUnit框架,运行测试需要JUnit库