简单工厂模式的使用案例:
假设我们正在开发一个简单的图形绘制应用程序,用户可以绘制不同类型的图形,如矩形、圆形和三角形。我们可以使用简单工厂模式来创建这些不同类型的图形对象。
首先,定义一个图形接口 Shape,包含一个绘制方法 draw:
public interface Shape {
void draw();
}
然后,创建三个具体的图形类:Rectangle(矩形)、Circle(圆形)和Triangle(三角形),它们实现了 Shape 接口,并实现了绘制方法:
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Drawing Rectangle");
}
}
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("Drawing Circle");
}
}
public class Triangle implements Shape {
@Override
public void draw() {
System.out.println("Drawing Triangle");
}
}
接下来,创建一个简单工厂类 ShapeFactory,根据传入的参数类型来创建相应的图形对象:
public class ShapeFactory {
public static Shape createShape(String type) {
if (type.equals("rectangle")) {
return new Rectangle();
} else if (type.equals("circle")) {
return new Circle();
} else if (type.equals("triangle")) {
return new Triangle();
} else {
throw new IllegalArgumentException("Invalid shape type");
}
}
}
最后,我们可以在客户端代码中使用简单工厂类来创建不同类型的图形对象并进行绘制:
public class Client {
public static void main(String[] args) {
Shape rectangle = ShapeFactory.createShape("rectangle");
rectangle.draw(); // Output: Drawing Rectangle
Shape circle = ShapeFactory.createShape("circle");
circle.draw(); // Output: Drawing Circle
Shape triangle = ShapeFactory.createShape("triangle");
triangle.draw(); // Output: Drawing Triangle
}
}
在上面的示例中,我们使用简单工厂模式封装了图形对象的创建过程,在客户端代码中只需要通过调用 ShapeFactory 的 createShape 方法来获取所需的图形对象,并调用其绘制方法。
使用简单工厂模式可以方便地根据客户端的需求创建不同类型的图形对象,同时将对象的创建逻辑封装在工厂类中,提高了代码的可维护性和可扩展性。