温馨提示×

如何自定义java工厂模式的接口和实现类

小樊
81
2024-09-02 03:18:30
栏目: 编程语言

在Java中,工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

以下是如何自定义Java工厂模式的接口和实现类的步骤:

  1. 首先,定义一个接口,该接口将声明工厂类需要实现的方法。例如,这里有一个名为Shape的接口:
public interface Shape {
    void draw();
}
  1. 然后,为每种具体类型创建实现此接口的实现类。例如,这里有两个实现类CircleRectangle
public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a circle.");
    }
}

public class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a rectangle.");
    }
}
  1. 创建一个工厂类,该类包含一个静态方法,该方法根据输入参数(例如,类型)返回相应的实现类实例。例如,这里有一个名为ShapeFactory的工厂类:
public class ShapeFactory {
    public static 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;
    }
}
  1. 最后,在客户端代码中,使用工厂类创建所需类型的实例。例如:
public class Main {
    public static void main(String[] args) {
        Shape circle = ShapeFactory.getShape("circle");
        circle.draw();

        Shape rectangle = ShapeFactory.getShape("rectangle");
        rectangle.draw();
    }
}

这样,你就可以根据需要轻松地添加更多形状实现和修改工厂类,而无需更改客户端代码。

0