千家信息网

java工厂模式分为哪几种

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"java工厂模式分为哪几种",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java工厂模式分为哪几种"吧!定义:工厂模式是 Java 中最
千家信息网最后更新 2026年11月03日java工厂模式分为哪几种

本篇内容主要讲解"java工厂模式分为哪几种",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java工厂模式分为哪几种"吧!

定义:

工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。

工厂模式根据抽象程度的不同分为三种:

简单工厂模式(也叫静态工厂模式)

工厂方法模式(也叫多形性工厂)

抽象工厂模式(也叫工具箱)

简单工厂模式

实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

工厂方法模式

工厂方法是粒度很小的设计模式,因为模式的表现只是一个抽象的方法。 提前定义用于创建对象的接口,让子类决定实例化具体的某一个类,即在工厂和产品中间增加接口,工厂不再负责产品的创建,由接口针对不同条件返回具体的类实例,由具体类实例去实现。

抽象工厂模式

当有多个抽象角色时使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品对象。它有多个抽象产品类,每个抽象产品类可以派生出多个具体产品类,一个抽象工厂类,可以派生出多个具体工厂类,每个具体工厂类可以创建多个具体产品类的实例。

工厂方法模式应该在实际中用的较多,我们以工厂方法模式举例

(例子来源百度,帮助理解)

抽象的产品类:定义car 交通工具类

public interface Car {    
void gotowork();}

定义实际的产品类,总共定义两个,bike 和bus 分别表示不同的交通工具类

public class Bike implements Car {    @Override    public void gotowork() {        System.out.println("骑自行车去上班!");    }}
public class Bus implements Car {    @Override    public void gotowork() {        System.out.println("坐公交车去上班!");    }}

定义抽象的工厂接口

public interface ICarFactory {    Car getCar();}

具体的工厂子类,分别为每个具体的产品类创建不同的工厂子类

public class BikeFactory implements ICarFactory {    @Override    public Car getCar() {        return new Bike();    }}
public class BusFactory implements ICarFactory {    
@Override public Car getCar() {
return new Bus(); }}

简单的测试类,来验证不同的工厂能够产生不同的产品对象

public class TestFactory {    @Test    public void test() {        ICarFactory factory = null;        // bike        factory = new BikeFactory();        Car bike = factory.getCar();        bike.gotowork();        // bus        factory = new BusFactory();        Car bus = factory.getCar();        bus.gotowork();    }}

工厂模式的优点:

1、一个调用者想创建一个对象,只要知道其名称就可以了,降低了耦合度。

2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。使得代码结构更加清晰。

3、屏蔽产品的具体实现,调用者只关心产品的接口。

工厂模式的缺点:

每次增加一个产品时,都需要增加一个具体类和对象实现工厂(这里可以使用反射机制来避免),使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。所以对于简单对象来说,使用工厂模式反而增加了复杂度。

工厂模式的适用场景:

1, 一个对象拥有很多子类。

2, 创建某个对象时需要进行许多额外的操作。

3, 系统后期需要经常扩展,它把对象实例化的任务交由实现类完成,扩展性好。

关于Java中的工厂模式的一些常见问题:

利用父类的向下转型(使用父类类型的引用指向子类的对象)是可以达到类似于工厂模式的效果的,那为什么还要用工厂模式呢?

把指向子类对象的父类引用赋给子类引用叫做向下转型,如:

Class Student extends Person     Person s = new Student();    s = (Student)person ;

使用向下转型在客户端实例化子类的时候,严重依赖具体的子类的名字。当我们需要更改子类的构造方法的时候,比如增加一个参数,或者更改了子类的类名,所有的new出来的子类都需要跟着更改。

但如果我们使用工厂模式,我们仅仅需要在工厂中修改一下new的代码,其余项目中用到此实例的都会跟着改,而不需要我们手动去操作。

到此,相信大家对"java工厂模式分为哪几种"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

工厂 模式 对象 子类 产品 品类 实例 接口 方法 不同 多个 系统 实际 客户 客户端 工具 设计模式 设计 复杂 交通工具 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 新华互联网科技学校 互联网科技开发公司 互联网科技论文 长亮科技互联网金融 镁科技互联网资讯平台 深圳国际航运科技和互联网 广州慧亚互联网科技怎么样 移动互联网科技股 重庆威客帮互联网科技 来此购互联网科技有限公司 中国互联网十大科技股排名 想开互联网科技公司怎么样 互联网行业科技股 四川慕妮娅互联网科技有限公司 银川新华互联网科技学校是国营吗 盐城市攀科互联网科技有限公司 互联网金融金融科技 10位科技互联网大佬 利用互联网等科技手段 北京互联网科技公司 万易互联网科技 中国互联网金融科技基金 科技大学互联网专业好不好 广州恒生互联网科技有限 佳云科技和互联网广告 银川新华互联网科技学校联系电话 互联网科技博主张洲 互联网科技大会大佬 如何强化互联网金融科技
0