简单工厂模式是什么,如何实现代码
时间: 2024-05-15 12:18:54 浏览: 16
简单工厂模式是一种创建型设计模式,它允许通过提供一个公共介面来创建新的对象,而无需指定它们的具体类。通过这种方式,我们可以在运行时动态地创建类,根据需要返回一个与客户端无关的对象。
要实现简单工厂模式,首先需要定义一个工厂类,该类包含一个方法,该方法以参数为依据返回不同的对象。我们可以使用条件语句或者 switch 语句来根据参数创建不同的对象实例。或者我们可以利用反射机制来创建对象实例,这样我们就不需要手动编写工厂类每个变体的代码。
以下是一个简单工厂模式的示例代码:
```
public class ShapeFactory {
// 创建并返回不同类型的形状对象
public Shape createShape(String type) {
if (type.equalsIgnoreCase("circle")) {
return new Circle();
} else if (type.equalsIgnoreCase("rectangle")) {
return new Rectangle();
} else if (type.equalsIgnoreCase("square")) {
return new Square();
} else {
return null;
}
}
}
// 形状接口
public interface Shape {
void draw();
}
// 不同形状的具体实现类
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.");
}
}
public class Square implements Shape {
@Override
public void draw() {
System.out.println("Drawing a square.");
}
}
// 客户端
public class Client {
public static void main(String[] args) {
ShapeFactory factory = new ShapeFactory();
// 创建一个圆形
Shape circle = factory.createShape("circle");
circle.draw();
// 创建一个矩形
Shape rectangle = factory.createShape("rectangle");
rectangle.draw();
// 创建一个正方形
Shape square = factory.createShape("square");
square.draw();
}
}
```