阅读量:91
在Java中,工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
以下是如何自定义Java工厂模式的接口和实现类的步骤:
- 首先,定义一个接口,该接口将声明工厂类需要实现的方法。例如,这里有一个名为
Shape的接口:
public interface Shape {
void draw();
}
- 然后,为每种具体类型创建实现此接口的实现类。例如,这里有两个实现类
Circle和Rectangle:
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.");
}
}
- 创建一个工厂类,该类包含一个静态方法,该方法根据输入参数(例如,类型)返回相应的实现类实例。例如,这里有一个名为
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;
}
}
- 最后,在客户端代码中,使用工厂类创建所需类型的实例。例如:
public class Main {
public static void main(String[] args) {
Shape circle = ShapeFactory.getShape("circle");
circle.draw();
Shape rectangle = ShapeFactory.getShape("rectangle");
rectangle.draw();
}
}
这样,你就可以根据需要轻松地添加更多形状实现和修改工厂类,而无需更改客户端代码。