Java设计模式之工厂模式解析(Factory)

工厂模式简介

工厂模式的作用是屏蔽创建对象过程中的具体过程,以便提高创建对象过程的灵活性,使使用者不必关心构造对象的细节和复杂的过程。

工厂模式一般情况下分为三类:

1.简单工厂模式(Simple Factory)

2.工厂方法模式(Factory Method)

3.抽象工厂模式(Abstract Factory)

在工厂模式中一般存在以下三个类型的角色,分别是产品类,工厂类和客户类。产品类就是最终产出的产品;工厂类就是生产产品的工厂;客户类就是最终产品的需求者。

一、简单工厂模式(Simple Factory)

简单工厂模式对上面提到的工厂模式中三个类型角色中的产品类进行了修改,把产品类进行了抽象,分成了抽象产品角色和具体产品角色,其他角色类不变。抽象产品角色一般是具体产品类需要继承的父类或者需要实现的接口,而具体产品角色就是工厂类中需要创建的产品实例。

代码实例:

1.产品类

简单工厂模式中的产品类

2.工厂类

简单工厂模式中的工厂类

3.客户类

简单工厂模式中的客户类

二、工厂方法模式(Factory Method)

工厂方法模式对上面提到的简单工厂模式又进行了一部分修改,在简单工厂模式的基础上把工厂类进行了抽象,分成了抽象工厂角色和具体工厂角色。抽象工厂角色是工厂方法模式中的核心部分,是必须由具体工厂角色进行继承或者实现的父类或者接口。具体工厂角色在继承或者实现抽象工厂角色后在自己的内部做具体的业务逻辑。

工厂方法模式中的抽象产品角色和具体产品角色

工厂方法模式中的抽象工厂角色和具体工厂角色

工厂方法模式中的客户类

三、抽象工厂模式(Abstract Factory)

抽象工厂模式由于本人用的比较少,所以不做过多的解读,大家有什么自己的看法或者见解请在留言板或者私信中告诉我,废话少说直接上代码实例。(PS:以下代码实例是从网上找的,如果作者看到可以私信我,我会进行删除)

1.抽象工厂模式等级结构

抽象工厂模式中的等级结构

2.产品类

抽象工厂模式中的产品类

3.工厂类

抽象工厂模式中的工厂类

4.客户类

抽象工厂模式中的客户类

结语

其实不管是简单工厂模式、工厂方法模式还是抽象工厂模式都需要根据自己的业务需求去做更改。我看到网上对工厂模式根据不同的实现还有很多解读。例如:多个工厂方法模式、静态工厂方法模式等。其实大的框架都大同小异,只是在实现部分做了一些修改。 比如多个工厂方法模式就是在工厂角色类中直接根据不同的产品生成去创建不同的多个方法去实现而不做逻辑判断。而静态工厂方法模式也是在工厂角色类中进行了修改,就是把多个工厂方法模式中的多个实现方法进行静态化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值