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

面试

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

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();
相关推荐
Wang's Blog21 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
\光辉岁月/1 天前
5.java-数组
java·开发语言
谢亮_vipxieliang1 天前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
郑州光合科技余经理1 天前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_962071571 天前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm
code2cat1 天前
Java进阶篇之AtomicReference:一次替换引用,读到一份完整状态
java·并发编程·不可变对象·atomicreference
专业程序开发源1 天前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
Wang's Blog1 天前
Java 项目实战: 外卖平台优化-前后端分离开发模式与工程拆分
java·开发语言
HEJOO91 天前
指针的算术运算详解
java·数据结构·算法
sunshine22 girl1 天前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习