工厂模式java
时间: 2023-06-21 21:19:33 浏览: 100
工厂模式是一种创建型设计模式,它提供了一个创建对象的最佳方式。在工厂模式中,我们创建对象而不必将创建过程暴露给客户端,并且客户端使用工厂方法来创建对象。
在 Java 中,我们可以通过接口或抽象类来定义工厂方法,然后使用具体的类来实现这个接口或抽象类。这样一来,我们就可以将具体的实现隐藏在工厂方法中,而客户端只需要使用工厂方法来创建对象。
例如,我们可以定义一个接口 ShapeFactory,然后使用具体的类 CircleFactory 和 RectangleFactory 来实现这个接口。客户端只需要使用 ShapeFactory 来创建 Circle 或 Rectangle 对象,而不需要知道具体的实现细节。
下面是一个简单的工厂模式的示例代码:
```java
// 定义形状接口
interface Shape {
void draw();
}
// 定义圆形类
class Circle implements Shape {
public void draw() {
System.out.println("画一个圆形");
}
}
// 定义矩形类
class Rectangle implements Shape {
public void draw() {
System.out.println("画一个矩形");
}
}
// 定义工厂接口
interface ShapeFactory {
Shape createShape();
}
// 定义圆形工厂类
class CircleFactory implements ShapeFactory {
public Shape createShape() {
return new Circle();
}
}
// 定义矩形工厂类
class RectangleFactory implements ShapeFactory {
public Shape createShape() {
return new Rectangle();
}
}
// 客户端代码
public class FactoryPatternDemo {
public static void main(String[] args) {
// 创建圆形
ShapeFactory circleFactory = new CircleFactory();
Shape circle = circleFactory.createShape();
circle.draw();
// 创建矩形
ShapeFactory rectangleFactory = new RectangleFactory();
Shape rectangle = rectangleFactory.createShape();
rectangle.draw();
}
}
```
在这个示例中,我们定义了一个 Shape 接口和两个具体的形状类 Circle 和 Rectangle。然后我们定义了一个 ShapeFactory 接口和两个具体的工厂类 CircleFactory 和 RectangleFactory,用于创建 Circle 和 Rectangle 对象。最后,我们在客户端代码中使用这些工厂类来创建对象,并调用对象的 draw 方法来画出形状。
阅读全文