帮我用java写一个工厂模式的代码
时间: 2023-08-28 18:35:22 浏览: 52
好的,以下是用 Java 实现工厂模式的代码:
首先,我们需要定义一个接口 `Product`,表示我们要创建的产品,这里我们假设产品有一个方法 `use`:
```java
public interface Product {
void use();
}
```
然后,我们定义两个具体的产品类 `ProductA` 和 `ProductB`,实现 `Product` 接口:
```java
public class ProductA implements Product {
@Override
public void use() {
System.out.println("Product A is used.");
}
}
public class ProductB implements Product {
@Override
public void use() {
System.out.println("Product B is used.");
}
}
```
接下来,我们定义一个工厂类 `ProductFactory`,用于创建产品。这个工厂类有一个静态方法 `createProduct`,根据传入的参数创建不同的产品:
```java
public class ProductFactory {
public static Product createProduct(String type) {
if ("A".equals(type)) {
return new ProductA();
} else if ("B".equals(type)) {
return new ProductB();
} else {
throw new IllegalArgumentException("Invalid product type: " + type);
}
}
}
```
最后,我们可以在客户端代码中使用工厂类创建产品:
```java
Product productA = ProductFactory.createProduct("A");
productA.use();
Product productB = ProductFactory.createProduct("B");
productB.use();
```
输出结果:
```
Product A is used.
Product B is used.
```
这就是工厂模式的基本实现方式。
相关推荐
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)