Java工厂模式怎么实现
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"Java工厂模式怎么实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概念: 工厂模
千家信息网最后更新 2025年12月02日Java工厂模式怎么实现
本篇内容介绍了"Java工厂模式怎么实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
概念: 工厂模式负责将大量有共同接口的类实例化。
相关角色: 抽象工厂:创建对象的具体工厂类必须实现这个接口 具体工厂:实现了抽象工厂接口的具体工厂类 抽象产品:创建的具体对象的超类型(父抽象类或父接口) 具体产品:创建的具体对象。
1)简单工厂模式(静态工厂方法模式):
概念:新建一个工厂类,该工厂类有一个静态的工厂方法,根据这个静态工厂方法的入参来决定创建的对象是哪个类型。 实现: // 工厂类 public class Creator { // 静态工厂方法:根据入参condition来决定返回对象的类型。 public static ConcreteProduct factory(condition){ if (condition 满足 条件A) { return new ConcreteProductA(); // 注:ConcreteProduct是ConcreteProductA和ConcreteProductB的超类 } else if (condition 满足 条件B) { return new ConcreteProductB(); } else { // 返回一个默认ConcreteProductX对象 或 直接抛出异常 } } } 缺点:新增类型(eg:ConcreteProductC)时,需要修改静态工厂方法,没有开闭原则的要求。 举例:java.text.DateFormat的getDateInstance()方法。注:DateFormat这个工厂类,是通过重载getDateInstance()方法的方式来进行条件的判断。2)工厂方法模式:
概念:新建一个工厂接口(或工厂抽象类)、多个具体工厂类,所有的具体工厂类都实现了工厂接口中定义的工厂方法,每个具体工厂类只产生特定类型的对象。 实现: // 抽象工厂 public interface Creator { // 工厂方法 public Product factory(); } // 具体工厂ConcreteCreatorA 实现了工厂接口Creator public class ConcreteCreatorA implements Creator { // 工厂方法 public Product factory() { return new ProductA(); } } // 具体工厂ConcreteCreatorB 实现了工厂接口Creator public class ConcreteCreatorA implements Creator { // 工厂方法 public Product factory() { return new ProductB(); } } 缺点:新增类型(eg:ProductC)时,需要新增对应的具体工厂,当类型较多时(具体工厂类也会随之增多),不容易维护。 注意: 工厂方法模式和模板方法模式的比较: 1)二者都是基于方法的,都是将具体工作交给子类。 2)工厂方法模式将创建的工作推延给子类,模板方法模式将剩余的逻辑交给子类。 举例:java集合中的工厂模式: // 抽象工厂 public interface List extends Collection { Iterator iterator(); // 工厂方法 } // 具体工厂 public class ArrayList implements List { public Iterator iterator() { return new Itr(); // java.util.Vector.Itr 实现了Iterator接口 } } // 具体工厂 public class Vector implements List { public synchronized Iterator iterator() { return new Itr(); // java.util.ArrayList.Itr 实现了Iterator接口 } } 3)抽象工厂模式:
概念:新建一个工厂接口(或工厂抽象类)、一个具体工厂类,这个具体工厂类实现了工厂接口中定义的多个工厂方法,故这个具体工厂类可以产生多种类型的对象。 实现: // 抽象工厂:规定了多个工厂方法 public interface Creator { // 创建A系列产品对象的工厂方法 public ProductA factoryA(); // 创建B系列产品对象的工厂方法 public ProductB factoryB(); } // 具体工厂:实现了抽象工厂的多个工厂方法 public class ConcreteCreator implements Creator { // 创建A类产品对象的工厂方法 public ProductA factoryA() { return new ProductA1(); // 注:ProductA1 implements ProductA } // 创建B类产品对象的工厂方法 public ProductB factoryB() { return new ProductB1(); // 注:ProductB1 implements ProductB } } 缺点:新增其它系列(eg:ProductC)的产品时,需要修改抽象工厂(在抽象工厂中添加新的工厂方法)。"Java工厂模式怎么实现"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
工厂
方法
模式
对象
接口
类型
产品
静态
多个
概念
子类
条件
缺点
内容
更多
模板
知识
工作
实用
学有所成
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
汽车软件开发利润多少
数据库怎么备份到磁带上
nba 2k21服务器无法正常使用
网络安全的日文
电脑服务器配置不够
淘客系统软件开发公司
网络安全训练网址
无网络连接的网络安全攻防战
上海银联网络技术咨询报价
奉贤区一站式软件开发欢迎选购
网络安全月漫画图片
网络安全法数据500
软件开发跟固态硬盘
一个sk5服务器只有一个ip吗
服务器和电脑机箱有什么区别
江苏品质刀片服务器设计
mis服务器
富数科技互联网奖项
服务器管理器无法打开
静安区一站式网络技术优势
青少年网络安全议论文
食材数据库
靠谱的贸易管理软件开发流程
直播需要什么网络技术
合肥九灵网络技术
网络安全icmp重定向实验
浙江弘瑞网络技术股
hpDL360G7服务器不显示
阿里云服务器一般安全吗
资源管理数据库