请描述简单工厂模式的工作原理

面试

简单工厂模式的核心思想是把对象的创建逻辑集中到一个工厂类里,调用方只需要告诉工厂"我要什么类型",工厂根据参数决 定创建哪个具体对象返回。

java 复制代码
// 产品接口
public interface Database {
    void connect();
}

// 具体产品
public class MySQL implements Database {
    public void connect() {
        System.out.println("连接 MySQL 数据库");
    }
}

public class PostgreSQL implements Database {
    public void connect() {
        System.out.println("连接 PostgreSQL 数据库");
    }
}

// 简单工厂
public class DatabaseFactory {
    public static Database createDatabase(String type) {
        switch (type) {
            case "mysql":
                return new MySQL();
            case "postgresql":
                return new PostgreSQL();
            default:
                throw new IllegalArgumentException("不支持的数据库类型: " + type);
        }
    }
}

// 客户端使用
Database db = DatabaseFactory.createDatabase("mysql");
db.connect();
相关推荐
晨曦中的暮雨6 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
文丑颜不良啊7 小时前
LeetCode876~900题目解析
java·leetcode
aloha_7898 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
知守观8 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅8 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
SL_staff9 小时前
JVS私有化文档系统上线避坑指南:5大运维与业务协同断点及检测加固实践
java·开源·全栈
FinelyYang10 小时前
考试系统简答题 AI 阅卷:覆盖度驱动、异步评分与人机协同落地实践
java·大数据·人工智能
hhhjhl11 小时前
Yup 跨端三方库仓颉适配全流程
java·开发语言
用户31268748772011 小时前
Java 对象内存布局:压缩指针、对齐填充与 JOL 实测
java