Java中工厂类的使用,并且给出扩展的途径
时间: 2024-05-07 07:18:09 浏览: 10
Java中的工厂类通常用于创建对象,使代码更加模块化和可扩展。工厂类可以隐藏对象的实现细节,使客户端只需要关注对象的使用,而不需要关注对象的创建过程。以下是一个简单的工厂类的示例代码:
```java
public class ShapeFactory {
public Shape getShape(String shapeType){
if(shapeType == null){
return null;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
return new Circle();
} else if(shapeType.equalsIgnoreCase("RECTANGLE")){
return new Rectangle();
} else if(shapeType.equalsIgnoreCase("SQUARE")){
return new Square();
}
return null;
}
}
```
在上面的示例代码中,ShapeFactory是一个工厂类,getShape方法根据传入的参数决定创建哪种类型的对象。客户端只需要调用ShapeFactory的getShape方法,即可获得需要的对象。
如果需要扩展工厂类,可以通过以下方式实现:
1. 添加新的对象类型:只需要在工厂类中新增对应的创建方法即可。
2. 修改已有的对象类型:只需要修改对应的创建方法即可。
3. 替换工厂类:如果需要替换工厂类,只需要创建一个新的工厂类,并将客户端中的工厂类替换成新的工厂类即可。
4. 使用反射:使用反射可以避免每次新增对象类型时都需要修改工厂类。可以通过读取配置文件的方式,动态创建对象,从而扩展工厂类。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)