Java工厂模式怎么实现
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"Java工厂模式怎么实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概念: 工厂模
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
咖啡豆
广州为想互联网科技有限公司
上海卓越科技互联网
智能科技公司是互联网公司吗
腾讯阿里互联网科技
善班互联网科技
壕鑫互联网络科技
睿民互联网科技
广州凡科互联网科技
掌上梦互联网科技
镁科技互联网资讯平台
互联网科技公司的市场部门
中化能源互联网科技招聘
互联网对科技的发展
厦门比较好的科技互联网公司
新兴科技互联网创新大赛颁奖典礼
苏州铭阳互联网科技有限公司
厦门江牛科技互联网
互联网界的黑科技
上海旺乐尼互联网科技有限公司
西安纸贵互联网科技有限公司
腾讯科技 互联网女皇
猫创互联网科技
互联网 新科技
互联网科技汛
河南猎农互联网科技有限公司
南平创想时代互联网科技有限公司
恒生互联网科技指数跳水
高科技互联网发展前景如何
互联网相关科技技术