适合使用简单工厂模式的场景
- 商品类型较少且固定:当电商系统中的商品类型相对稳定,不会频繁增加或修改时,例如只有电子产品、服装、食品这几类商品。通过简单工厂模式可以方便地创建不同类型的商品实例,而不需要在多个地方重复编写创建商品的代码。
- 解耦对象创建和使用:如果商品创建的逻辑较为复杂,涉及到一些初始化设置、资源获取等操作,将这些创建逻辑封装在简单工厂中,可以让使用商品的模块只关注商品的使用,而不关心其创建过程。比如创建一个电子产品商品,可能需要初始化一些硬件配置参数,将这些操作放在简单工厂中,使用该商品的模块就无需关心这些细节。
Java代码示例
// 商品接口
interface Product {
void showInfo();
}
// 具体商品类 - 电子产品
class ElectronicProduct implements Product {
@Override
public void showInfo() {
System.out.println("这是一款电子产品");
}
}
// 具体商品类 - 服装
class ClothingProduct implements Product {
@Override
public void showInfo() {
System.out.println("这是一件服装");
}
}
// 简单工厂类
class ProductFactory {
public static Product createProduct(String productType) {
if ("electronic".equals(productType)) {
return new ElectronicProduct();
} else if ("clothing".equals(productType)) {
return new ClothingProduct();
}
return null;
}
}
// 测试类
public class ECommerceSystem {
public static void main(String[] args) {
Product electronic = ProductFactory.createProduct("electronic");
if (electronic != null) {
electronic.showInfo();
}
Product clothing = ProductFactory.createProduct("clothing");
if (clothing != null) {
clothing.showInfo();
}
}
}