什么是Java工厂模式?
时间: 2023-10-06 09:13:20 浏览: 54
Java工厂模式是一种创建型设计模式,它提供了一种方法来创建对象,而无需将其具体的实现暴露给客户端代码。该模式通过定义一个工厂方法来创建对象,而不是直接调用构造函数来创建对象。通过使用工厂模式,客户端代码可以通过工厂方法创建对象,并且不需要了解对象的具体实现。这种方法可以使代码更加灵活,容易维护和扩展。在Java中,工厂模式通常通过接口和实现类来实现。客户端代码只需要使用接口而不是具体的实现类来创建对象。
相关问题
java 工厂模式 到底是什么 ????
Java 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。 工厂模式的主要思想是将对象的创建过程封装在一个工厂类中,这个工厂类负责创建具体类的对象,而客户端只需要调用工厂类的方法即可。
在 Java 中,工厂模式可以通过两种方式实现:简单工厂模式和工厂方法模式。简单工厂模式是通过一个工厂类将所有的对象的创建过程进行封装,而工厂方法模式则是将不同的对象的创建过程分别封装在不同的工厂类中。
使用工厂模式可以降低系统中各个类之间的耦合性,使得代码更加灵活和可扩展。此外,工厂模式还可以隐藏具体类的实现细节,从而提高系统的安全性。
什么是工厂模式java举例说明
工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们创建对象而不需要直接使用 new 操作符。工厂模式使用工厂方法来处理对象的创建并将其委托给子类。这种方式让类实例化延迟到子类中进行,从而在需要修改实例化方法时,只需修改相应的子类即可。下面是一个Java简单工厂模式的例子[^1][^2]:
假设我们要创建一个图形类,有两个子类:矩形和圆形。我们通过ShapeFactory类来获取它们的对象实例,而不需要调用它们各自的构造函数。
```java
// 创建一个图形接口
interface Shape {
void draw();
}
// 创建圆形类实现图形接口
class Circle implements Shape {
@Override
public void draw() {
System.out.println("Circle.draw()");
}
}
// 创建矩形类实现图形接口
class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Rectangle.draw()");
}
}
// 创建一个工厂,生成基于给定信息的实体类的对象
class ShapeFactory {
// 使用 getShape 方法获取形状类型的对象
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();
}
return null;
}
}
// 在客户端代码中使用工厂来获取类的对象
public class FactoryPatternDemo {
public static void main(String[] args) {
ShapeFactory shapeFactory = new ShapeFactory();
// 获取圆形对象
Shape shape1 = shapeFactory.getShape("CIRCLE");
// 调用圆形的draw方法
shape1.draw();
// 获取矩形对象
Shape shape2 = shapeFactory.getShape("RECTANGLE");
// 调用矩形的draw方法
shape2.draw();
}
}
```
在上述示例中,我们通过工厂类创建了两个 Shape 接口的子类实例:Circle 和 Rectangle。此外,我们还可以创建其他形状的对象,只需在 ShapeFactory 类中添加相应的代码即可。