简单工厂模式可以帮助我们将对象的创建过程封装起来,使得客户端代码不需要关心具体的实现细节,只需要通过简单工厂来获取需要的产品实例即可。
首先,我们定义一个抽象产品类 Product,它包含一个抽象方法 use(),表示产品的使用方法。
public abstract class Product {
public abstract void use();
}
然后,我们定义两个具体产品类 ProductA 和 ProductB,它们都继承自抽象产品类 Product,并实现了 use() 方法。
public class ProductA extends Product {
@Override
public void use() {
System.out.println("ProductA is being used.");
}
}
public class ProductB extends Product {
@Override
public void use() {
System.out.println("ProductB is being used.");
}
}
}
接下来,我们定义一个简单工厂类 ProductFactory,它包含一个静态方法 createProduct(String type),根据传入的参数 type 来创建对应的产品实例。如果传入的参数不是 “A” 或 “B”,则返回 null。
public class ProductFactory {
public static Product createProduct(String type) {
if (type.equals("A")) {
return new ProductA();
} else if (type.equals("B")) {
return new ProductB();
} else {
return null;
}
}
}
最后,我们可以在客户端代码中使用简单工厂来创建产品实例。
public class Client {
public static void main(String[] args) {
Product productA = ProductFactory.createProduct("A");
Product productB = ProductFactory.createProduct("B");
productA.use(); // Output: ProductA is being used.
productB.use(); // Output: ProductB is being used.
}
}
这就是使用 Java 语言编码实现简单工厂模式的示例代码。