java当中工厂模式
时间: 2023-11-20 16:57:52 浏览: 45
Java中的工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。工厂模式隐藏了创建对象的复杂性,并将其封装在一个单独的类中。这个类被称为工厂类。工厂类负责创建对象并向客户端返回新创建的对象。工厂模式有三种类型:简单工厂模式、工厂方法模式和抽象工厂模式。
1.简单工厂模式
简单工厂模式是最简单的工厂模式。在简单工厂模式中,我们使用一个工厂类来创建对象。这个工厂类根据传递给它的参数来创建对象。以下是一个简单工厂模式的示例:
```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;
}
}
```
2.工厂方法模式
工厂方法模式是一种创建型设计模式,它使用工厂方法来处理对象的创建。在工厂方法模式中,我们定义一个创建对象的接口,但让子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类中进行。以下是一个工厂方法模式的示例:
```java
public interface ShapeFactory {
Shape createShape();
}
public class CircleFactory implements ShapeFactory {
@Override
public Shape createShape() {
return new Circle();
}
}
public class RectangleFactory implements ShapeFactory {
@Override
public Shape createShape() {
return new Rectangle();
}
}
public class SquareFactory implements ShapeFactory {
@Override
public Shape createShape() {
return new Square();
}
}
```
3.抽象工厂模式
抽象工厂模式是一种创建型设计模式,它允许客户端使用抽象接口来创建一组相关的对象。在抽象工厂模式中,我们定义一个接口,该接口负责创建一系列相关的对象。以下是一个抽象工厂模式的示例:
```java
public interface ShapeFactory {
Shape createShape();
Color createColor();
}
public class RedCircleFactory implements ShapeFactory {
@Override
public Shape createShape() {
return new Circle();
}
@Override
public Color createColor() {
return new Red();
}
}
public class BlueRectangleFactory implements ShapeFactory {
@Override
public Shape createShape() {
return new Rectangle();
}
@Override
public Color createColor() {
return new Blue();
}
}
```