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

面试

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

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();
相关推荐
白远山8 分钟前
健身场馆无人自动化解决方案:从架构到落地实践
java·开发语言·数据库·数据挖掘·需求分析
user_admin_god25 分钟前
第 01 篇:OpenAI 兼容 API 初探 —— 用 curl 跑通第一次对话
java·人工智能·spring boot·语言模型·devops
曹牧28 分钟前
PostMan:400 Bad Request‌
java
devpotato36 分钟前
RPO与RTO:容灾的两个关键指标
java·后端
宁渡AI大模型1 小时前
AI 全栈面试新趋势:Vibe Coding、前端、Java 后端高频面试题深度解析|河南宁渡科技有限公司编程教程
java·javascript·人工智能·python·ai大模型
CallFay云起未来1 小时前
AI客服如何与人工客服协同?从任务路由到上下文交接的Agent架构实践
java·人工智能·文心一言
cfm_29141 小时前
观察者模式
java
野生技术架构师1 小时前
1000+ Java面试题知识图谱:从基础语法到分布式架构的完整拓扑
java·面试
步行cgn1 小时前
Spring 底层如何创建对象:反射机制与实例化策略
java·后端·spring
何以解忧,唯有..2 小时前
Redis 过期事件监听:原理与实战
java