当前位置: 首页 > news >正文

23种设计模式-创建型模式之工厂方法模式(Java版本)

Java 工厂方法模式(Factory Method Pattern)详解

🌟 什么是工厂方法模式?

工厂方法模式是一种创建型设计模式,定义一个创建对象的接口,让子类决定实例化哪一个类
它让类的实例化推迟到子类进行,实现了代码解耦与可扩展性增强


🧠 使用场景

  • 不知道对象的具体类型时
  • 需要将对象的创建与使用解耦
  • 代码需要遵循开闭原则,便于扩展新产品

🏗️ 模式结构

  • Product(抽象产品类)
  • ConcreteProduct(具体产品类)
  • Factory(抽象工厂类)
  • ConcreteFactory(具体工厂类)

✅ 示例:创建不同类型的日志类

抽象产品接口

public interface Logger {void log(String message);
}

具体产品实现

public class FileLogger implements Logger {public void log(String message) {System.out.println("File log: " + message);}
}public class ConsoleLogger implements Logger {public void log(String message) {System.out.println("Console log: " + message);}
}

抽象工厂

public interface LoggerFactory {Logger createLogger();
}

具体工厂类

public class FileLoggerFactory implements LoggerFactory {public Logger createLogger() {return new FileLogger();}
}public class ConsoleLoggerFactory implements LoggerFactory {public Logger createLogger() {return new ConsoleLogger();}
}

客户端调用

public class Client {public static void main(String[] args) {LoggerFactory factory = new FileLoggerFactory(); // 可替换为 ConsoleLoggerFactoryLogger logger = factory.createLogger();logger.log("日志记录开始!");}
}

🆚 与简单工厂的区别

简单工厂工厂方法模式
由一个工厂类创建所有产品每个产品对应一个具体工厂类
不符合开闭原则符合开闭原则
添加新产品需要改工厂类添加新产品只需新增工厂子类

🧩 优点

  • 符合开闭原则,增加新产品不用修改已有代码
  • 封装具体产品的创建逻辑,降低耦合
  • 更灵活,易于扩展

⚠️ 缺点

  • 类的数量增加,每新增一个产品就需要增加一个工厂类
  • 增加系统复杂度

✅ 使用建议

当你需要将对象创建过程从客户端中抽离出来,且可能会新增新类型产品时,使用工厂方法模式是最佳选择

相关文章:

  • TCP连接建立:为什么是三次握手?
  • nohup命令使用说明
  • R4打卡——tensorflow实现火灾预测
  • 【软考-系统架构设计师】ATAM方法及效用树
  • JVM考古现场(二十二):降维打击·用二向箔优化内存模型
  • UE学习记录part18
  • rk算力集群usb做网卡
  • 数据一致性问题剖析与实践(一)——冗余数据存储分布式共识决策中的一致性问题
  • 生成树协议的构成(STP)
  • 贝叶斯均衡
  • 快速认识:数据库、数仓(数据仓库)、数据湖与数据运河
  • 2025第十七届“华中杯”大学生数学建模挑战赛题目B 题 校园共享单车的调度与维护问题完整成品正文33页(不含附录)文章思路 模型 代码 结果分享
  • 【技术派后端篇】canal实现MySQL/Redis缓存一致性
  • OpenAI 推出一对 AI 推理模型 o3 和 o4-mini
  • 【数据结构_10】二叉树(1)
  • 解析检验平板:设备还是非设备?深入了解其功能与应用(北重铸铁平台厂家)
  • 三、小白如何用Pygame制作一款跑酷类游戏(按键图片和距离的计算)
  • Android Mainline简介
  • 16位海明码解码电路设计教程
  • Web安全和渗透测试--day6--sql注入--part 1
  • 视频丨习近平主席出席俄方在机场举行的迎宾仪式
  • 媒体起底“速成洋文凭”灰产链,专家:我们要给学历“祛魅”
  • 多个“网约摩托车”平台上线,工人日报:安全与监管不能掉队
  • 马克思主义理论研究教学名师系列访谈|石书臣:思政课是落实立德树人的关键
  • 美权威人士批“特朗普对进口电影征关税”:将杀死美电影产业
  • 医生李某某饮酒上班?重庆长寿区人民医院:正在调查,将严肃处理