工厂设计模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需将具体的实例化逻辑暴露给客户端代码。以下是一个简单的 Java 示例:
// 定义产品接口
interface Product {
void operation();
}
// 具体产品类1
class ConcreteProduct1 implements Product {
public void operation() {
System.out.println("ConcreteProduct1: Operation");
}
}
// 具体产品类2
class ConcreteProduct2 implements Product {
public void operation() {
System.out.println("ConcreteProduct2: Operation");
}
}
// 工厂接口
interface Factory {
Product createProduct();
}
// 具体工厂类1
class ConcreteFactory1 implements Factory {
public Product createProduct() {
return new ConcreteProduct1();
}
}
// 具体工厂类2
class ConcreteFactory2 implements Factory {
public Product createProduct() {
return new ConcreteProduct2();
}
}
// 示例
public class Main {
public static void main(String[] args) {
// 使用工厂1创建产品1
Factory factory1 = new ConcreteFactory1();
Product product1 = factory1.createProduct();
product1.operation();
// 使用工厂2创建产品2
Factory factory2 = new ConcreteFactory2();
Product product2 = factory2.createProduct();
product2.operation();
}
}
在这个例子中,Product 接口定义了产品的操作方法 operation(),ConcreteProduct1 和 ConcreteProduct2 是具体的产品类实现了该接口。Factory 接口定义了创建产品的方法 createProduct(),ConcreteFactory1 和 ConcreteFactory2 是具体的工厂类实现了该接口,分别用于创建 ConcreteProduct1 和 ConcreteProduct2。
在 Main 类中,我们使用具体的工厂类来创建具体的产品,并调用其操作方法。这样,客户端代码只需要知道如何使用工厂来创建产品,而无需关心具体产品的实例化细节。