工厂模式
工厂模式的目的是提供一个通用的接口来创建对象,而不需要客户端了解具体的实现细节。该模式适用于需要动态生成对象的场景,如Web应用中的对象池管理。
在Java中实现工厂模式通常涉及到创建一个工厂类,该类负责创建其他类的实例。工厂模式主要用于创建对象的场景,特别是在对象的创建逻辑比较复杂时。下面将通过一个简单的例子来说明如何在Java中实现工厂模式。
简单工厂模式
简单工厂模式是最基本的工厂模式,它通过一个工厂类来返回不同类的实例。
1、定义产品接口,所有的产品类都将实现这个接口。
public interface Shape {
void draw();
}
2、实现产品接口,实现这个接口的多个类。
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Inside Rectangle::draw() method.");
}
}
public class Square implements Shape {
@Override
public void draw() {
System.out.println("Inside Square::draw() method.");
}
}
3、创建一个工厂类,该类将基于给定的信息返回对应的产品对象。
public class ShapeFactory {
// 使用 getShape 方法获取形状类型的对象
public Shape getShape(String shapeType){
if(shapeType == null){
return null;
}
if(shapeType.equalsIgnoreCase("RECTANGLE")){
return new Rectangle();
} else if(shapeType.equalsIgnoreCase("SQUARE")){
return new Square();
}
return null;
}
}
4、使用工厂类来获取产品类的实例。
public class FactoryPatternDemo {
public static void main(String[] args) {
ShapeFactory shapeFactory = new ShapeFactory();
// 获取 Rectangle 的对象,并调用它的 draw 方法
Shape shape1 = shapeFactory.getShape("RECTANGLE");
shape1.draw();
// 获取 Square 的对象,并调用它的 draw 方法
Shape shape2 = shapeFactory.getShape("SQUARE");
shape2.draw();
}
}