java 工厂模式举例
时间: 2023-10-14 18:20:03 浏览: 38
Java 工厂模式的主要目的是创建对象,使得客户端从具体类解耦,而只依赖于接口或抽象类。在 Java 中,工厂模式通常有三种形式:简单工厂、工厂方法和抽象工厂。
下面以工厂方法为例,举一个简单的例子:
```
// 定义一个工厂接口
interface ShapeFactory {
Shape createShape();
}
// 实现工厂接口,创建具体的对象
class CircleFactory implements ShapeFactory {
public Shape createShape() {
return new Circle();
}
}
class RectangleFactory implements ShapeFactory {
public Shape createShape() {
return new Rectangle();
}
}
// 定义一个基础的形状接口
interface Shape {
void draw();
}
// 实现具体的形状
class Circle implements Shape {
public void draw() {
System.out.println("Drawing Circle...");
}
}
class Rectangle implements Shape {
public void draw() {
System.out.println("Drawing Rectangle...");
}
}
// 使用工厂创建对象
public class Main {
public static void main(String[] args) {
ShapeFactory factory = new CircleFactory();
Shape shape = factory.createShape();
shape.draw(); // Output: Drawing Circle...
factory = new RectangleFactory();
shape = factory.createShape();
shape.draw(); // Output: Drawing Rectangle...
}
}
```
在这个例子中,我们定义了一个工厂接口 `ShapeFactory`,并实现了具体的工厂类 `CircleFactory` 和 `RectangleFactory`,它们分别创建 `Circle` 和 `Rectangle` 对象。同时,我们定义了一个基础的形状接口 `Shape`,并实现了具体的形状类 `Circle` 和 `Rectangle`。在 `Main` 类中,我们通过工厂方法创建了 `Circle` 和 `Rectangle` 对象,并调用了 `draw()` 方法来绘制它们的形状。
通过这种方式,客户端只需要依赖于工厂接口 `ShapeFactory`,而不需要知道具体的实现类。这样,当我们需要添加新的形状时,只需要实现一个新的工厂类和形状类,并在客户端中使用即可,而不需要修改原有的代码。