MST

星途 面试题库

面试题:Java中简单工厂模式的场景应用与代码实现

请描述在一个电商系统中,哪些场景适合使用简单工厂模式,并给出Java代码示例实现一个商品创建的简单工厂。
46.5万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

适合使用简单工厂模式的场景

  1. 商品类型较少且固定:当电商系统中的商品类型相对稳定,不会频繁增加或修改时,例如只有电子产品、服装、食品这几类商品。通过简单工厂模式可以方便地创建不同类型的商品实例,而不需要在多个地方重复编写创建商品的代码。
  2. 解耦对象创建和使用:如果商品创建的逻辑较为复杂,涉及到一些初始化设置、资源获取等操作,将这些创建逻辑封装在简单工厂中,可以让使用商品的模块只关注商品的使用,而不关心其创建过程。比如创建一个电子产品商品,可能需要初始化一些硬件配置参数,将这些操作放在简单工厂中,使用该商品的模块就无需关心这些细节。

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();
        }
    }
}